Browse Source

로직 수정에 따른 쿼리문 수정

gagamel 5 years ago
parent
commit
9933c42e09

+ 6 - 4
산출물/4.구축/데이터처리/07.카테고리재고생성(TB_CATE_STOCK).sql

@@ -36,9 +36,10 @@ WITH TAB AS (
             AND    G.GOODS_TYPE = 'G056_N' /*일반상품*/
             AND    G.GOODS_STAT = 'G008_90' /*승인된상품*/
             AND    G.SELF_MALL_YN = 'Y' /*자사몰에노출하는넘만*/
+            AND    NOW() BETWEEN G.SELL_STDT AND G.SELL_EDDT /*유효한판매기간*/
             AND    S.SOLDOUT_YN = 'N' /*품절이아닌넘*/
             AND    S.DISP_YN = 'Y' /*사이즈노출하는넘만*/
-            AND    S.CURR_STOCK_QTY - S.BASE_STOCK_QTY > 0
+            AND    S.CURR_STOCK_QTY - S.BASE_STOCK_QTY > 0 /*재고있는넘만*/
             GROUP  BY G.GOODS_CD, B.BRAND_GROUP_NO, G.FORMAL_GB
             UNION ALL
             SELECT G.GOODS_CD
@@ -54,12 +55,13 @@ WITH TAB AS (
             AND    G.BRAND_CD = B.BRAND_CD
             AND    G.GOODS_TYPE != 'G056_N' /*일반상품이 아닌넘*/
             AND    G.GOODS_STAT = 'G008_90' /*승인된상품*/
-            AND    G.SELF_GOODS_YN = 'Y' /*자사상품만*/
+            AND    G.SELF_GOODS_YN = 'Y' /*자사상품만(세트상품과 딜상품은 자사상품만)*/
             AND    G.SELF_MALL_YN = 'Y' /*자사몰에노출하는넘만*/
-            AND    GC.USE_YN = 'Y'
+            AND    NOW() BETWEEN G.SELL_STDT AND G.SELL_EDDT /*유효한판매기간*/
+            AND    GC.USE_YN = 'Y' /*사용하는구성상품*/
             AND    S.SOLDOUT_YN = 'N' /*품절이아닌넘*/
             AND    S.DISP_YN = 'Y' /*사이즈노출하는넘만*/
-            AND    S.CURR_STOCK_QTY - S.BASE_STOCK_QTY > 0
+            AND    S.CURR_STOCK_QTY - S.BASE_STOCK_QTY > 0 /*재고있는넘만*/
             GROUP  BY G.GOODS_CD, B.BRAND_GROUP_NO, G.FORMAL_GB
            ) C
     WHERE  A.GOODS_CD = C.GOODS_CD

+ 33 - 9
산출물/4.구축/데이터처리/09.상품재고생성(TB_GOODS_STOCK).sql

@@ -5,15 +5,39 @@ INSERT INTO TB_GOODS_STOCK (
      , STOCK_QTY
      , REG_DT
 )
-SELECT GOODS_CD
-     , SUM(CURR_STOCK_QTY - BASE_STOCK_QTY) AS STOCK_QTY
-     , NOW()                                AS REG_DT
-FROM   VW_STOCK
-WHERE  1 = 1
-AND    SOLDOUT_YN = 'N'
--- AND    DISP_YN = 'Y'
--- AND    CURR_STOCK_QTY - BASE_STOCK_QTY > 0
-GROUP  BY GOODS_CD
+SELECT G.GOODS_CD
+     , SUM(S.CURR_STOCK_QTY - S.BASE_STOCK_QTY) AS STOCK_QTY
+     , NOW()                                    AS REG_DT
+FROM   TB_GOODS G
+     , VW_STOCK S
+WHERE  G.GOODS_CD = S.GOODS_CD
+AND    G.GOODS_TYPE = 'G056_N' /*일반상품*/
+AND    G.GOODS_STAT = 'G008_90' /*승인된상품*/
+AND    G.SELF_MALL_YN = 'Y' /*자사몰에노출하는넘만*/
+AND    NOW() BETWEEN G.SELL_STDT AND G.SELL_EDDT /*유효한판매기간*/
+AND    S.SOLDOUT_YN = 'N' /*품절이아닌넘*/
+AND    S.DISP_YN = 'Y' /*사이즈노출하는넘만*/
+AND    S.CURR_STOCK_QTY - S.BASE_STOCK_QTY > 0/*재고있는넘만*/
+GROUP  BY G.GOODS_CD
+UNION ALL
+SELECT G.GOODS_CD
+     , SUM(S.CURR_STOCK_QTY - S.BASE_STOCK_QTY) AS STOCK_QTY
+     , NOW()                                    AS REG_DT
+FROM   TB_GOODS G
+     , TB_GOODS_COMPOSE GC
+     , VW_STOCK S
+WHERE  G.GOODS_CD = GC.GOODS_CD
+AND    GC.COMPS_GOODS_CD = S.GOODS_CD
+AND    G.GOODS_TYPE != 'G056_N' /*일반상품이 아닌넘*/
+AND    G.GOODS_STAT = 'G008_90' /*승인된상품*/
+AND    G.SELF_GOODS_YN = 'Y' /*자사상품만(세트상품과 딜상품은 자사상품만)*/
+AND    G.SELF_MALL_YN = 'Y' /*자사몰에노출하는넘만*/
+AND    NOW() BETWEEN G.SELL_STDT AND G.SELL_EDDT /*유효한판매기간*/
+AND    GC.USE_YN = 'Y' /*사용하는구성상품*/
+AND    S.SOLDOUT_YN = 'N' /*품절이아닌넘*/
+AND    S.DISP_YN = 'Y' /*사이즈노출하는넘만*/
+AND    S.CURR_STOCK_QTY - S.BASE_STOCK_QTY > 0 /*재고있는넘만*/
+GROUP  BY G.GOODS_CD
 ;
 
 COMMIT;