Просмотр исходного кода

VW_STOCK_TMP 테이블 추가 및 정리

gagamel 4 лет назад
Родитель
Сommit
eb9cc35460

+ 34 - 41
산출물/3.설계/05.DB-Object/01.db_view/VW_STOCK.sql

@@ -1,44 +1,37 @@
 DROP VIEW VW_STOCK;
 CREATE VIEW VW_STOCK AS
-    SELECT
-        A.GOODS_CD,
-        A.OPT_CD,
-        A.OPT_CD1,
-        A.OPT_CD2,
-        A.CURR_STOCK_QTY,
-        0 AS BASE_STOCK_QTY,
-        A.ADD_PRICE,
-        A.SOLDOUT_YN,
-        A.DISP_ORD,
-        A.DISP_YN
-    FROM
-        (
-            SELECT
-                S.GOODS_CD,
-                S.OPT_CD,
-                S.OPT_CD1,
-                S.OPT_CD2,
-                GREATEST(GREATEST((GREATEST(S.CURR_STOCK_QTY,0) + GREATEST(S.STORE_STOCK_QTY,0)) - S.BASE_STOCK_QTY, 0) - IFNULL(SQ.STOCK_QTY, 0), 0) AS CURR_STOCK_QTY,
-                S.SOLDOUT_YN,
-                S.ADD_PRICE,
-                S.DISP_ORD,
-                S.DISP_YN
-            FROM
-                TB_OPTION S
-                LEFT OUTER JOIN(
-                            SELECT
-                                Z.GOODS_CD,
-                                Z.OPT_CD,
-                                SUM((CASE Z.SELL_GB WHEN '10' THEN 1
-                                                      WHEN '20' THEN 1
-                                                      ELSE -1 END) * Z.SELL_QTY) AS STOCK_QTY
-                            FROM
-                                TB_SELL_QTY Z
-                            GROUP BY
-                                Z.GOODS_CD, Z.OPT_CD
-                        ) SQ
-                        ON (
-                            S.GOODS_CD = SQ.GOODS_CD
+SELECT A.GOODS_CD
+     , A.OPT_CD
+     , A.OPT_CD1
+     , A.OPT_CD2
+     , A.CURR_STOCK_QTY
+     , 0                AS BASE_STOCK_QTY
+     , A.ADD_PRICE
+     , A.SOLDOUT_YN
+     , A.DISP_ORD
+     , A.DISP_YN
+FROM   (
+        SELECT S.GOODS_CD
+             , S.OPT_CD
+             , S.OPT_CD1
+             , S.OPT_CD2
+             , GREATEST((GREATEST(((GREATEST(S.CURR_STOCK_QTY,0) + GREATEST(S.STORE_STOCK_QTY,0)) - S.BASE_STOCK_QTY),0) - IFNULL(SQ.STOCK_QTY, 0)),0) AS CURR_STOCK_QTY
+             , S.SOLDOUT_YN
+             , S.ADD_PRICE
+             , S.DISP_ORD
+             , S.DISP_YN
+        FROM   TB_OPTION S
+        LEFT OUTER JOIN (
+                         SELECT GOODS_CD
+                              , OPT_CD
+                              , SUM((CASE SELL_GB
+                                          WHEN '10' THEN 1
+                                          WHEN '20' THEN 1
+                                          ELSE -1
+                                     END) * SELL_QTY) AS STOCK_QTY
+                         FROM   TB_SELL_QTY
+                         GROUP  BY GOODS_CD, OPT_CD
+                        ) SQ ON S.GOODS_CD = SQ.GOODS_CD
                             AND S.OPT_CD = SQ.OPT_CD
-                        )
-        ) A
+       ) A
+;

+ 21 - 1
산출물/3.설계/05.DB-Object/06.DDL/table.sql

@@ -16458,13 +16458,33 @@ CREATE TABLE NETPATHY_POINT
 COMMENT='넷퍼시 포인트. 넷퍼시메일 솔루션에 연동할 포인트 정보. 매일 1회 생성 시 발생'
 ;
 
+################################################################################
+#VW_STOCK대용임시(실시간재고)
+################################################################################
+DROP TABLE IF EXISTS VW_STOCK_TMP RESTRICT;
+CREATE TABLE VW_STOCK_TMP (
+    GOODS_CD       VARCHAR(20)       NOT NULL COMMENT '상품코드',
+    OPT_CD         VARCHAR(200) NOT NULL COMMENT '옵션코드',
+    OPT_CD1        VARCHAR(200)      NOT NULL COMMENT '옵션코드1(자사:COLOR_CD, 입점:옵션명1)', -- 옵션코드1(자사:COLOR_CD, 입점:옵션명1)
+    OPT_CD2        VARCHAR(200)      COMMENT '옵션코드2(자사:SIZE, 입점:옵션명2)',
+    CURR_STOCK_QTY SMALLINT          NOT NULL DEFAULT 0 COMMENT '현재고수량',
+    BASE_STOCK_QTY SMALLINT          NOT NULL DEFAULT 0 COMMENT '기준재고(안전재고)수량',
+    ADD_PRICE      INT               NOT NULL DEFAULT 0 COMMENT '추가가격',
+    SOLDOUT_YN     CHAR(1)           NOT NULL DEFAULT 'N' COMMENT '결품여부',
+    DISP_ORD       SMALLINT UNSIGNED  NOT NULL DEFAULT 1 COMMENT '표시순서',
+    DISP_YN        CHAR(1)           NOT NULL DEFAULT 'Y' COMMENT '표시여부',
+    PRIMARY KEY (GOODS_CD, OPT_CD)
+)
+COMMENT 'VW_STOCK대용임시(실시간재고). 배치에 의해 등록됨'
+;
+
 ################################################################################
 #VW_STOCK대용(실시간재고)
 ################################################################################
 DROP TABLE IF EXISTS VW_STOCK RESTRICT;
 CREATE TABLE VW_STOCK (
     GOODS_CD       VARCHAR(20)       NOT NULL COMMENT '상품코드',
-    OPT_CD      VARCHAR(200) NOT NULL COMMENT '옵션코드',
+    OPT_CD         VARCHAR(200) NOT NULL COMMENT '옵션코드',
     OPT_CD1        VARCHAR(200)      NOT NULL COMMENT '옵션코드1(자사:COLOR_CD, 입점:옵션명1)', -- 옵션코드1(자사:COLOR_CD, 입점:옵션명1)
     OPT_CD2        VARCHAR(200)      COMMENT '옵션코드2(자사:SIZE, 입점:옵션명2)',
     CURR_STOCK_QTY SMALLINT          NOT NULL DEFAULT 0 COMMENT '현재고수량',