Prechádzať zdrojové kódy

TsbGoods.updateGoodsTnm 쿼리문 수정

gagamel 4 rokov pred
rodič
commit
a1f1216743

+ 21 - 40
src/main/java/com/style24/persistence/mybatis/shop/TsbGoods.xml

@@ -283,47 +283,28 @@
 	<!-- 상품타이틀 변경 -->
 	<update id="updateGoodsTnm">
 		/* TsbGoods.updateGoodsTnm */
+		WITH TAB AS (
+		    SELECT RS.GOODS_CD
+		         , RS.GOODS_TNM
+		    FROM   (
+		            SELECT RS.GOODS_CD
+		                 , RS.GOODS_TNM
+		                 , RANK() OVER(PARTITION BY RS.GOODS_CD ORDER BY RS.GOODS_TNM_RES_SQ DESC) RK
+		            FROM   TB_GOODS_TNM_RES RS
+		            WHERE  1 = 1
+		                AND    NOW() BETWEEN RS.APPLY_STDT AND RS.APPLY_EDDT
+		            AND    RS.APPLY_YN = 'N'
+		           ) RS
+		         , TB_GOODS G
+		    WHERE  RS.GOODS_CD = G.GOODS_CD
+		    AND    RS.RK = 1
+		    AND    (RS.GOODS_TNM <![CDATA[<>]]> G.GOODS_TNM OR G.GOODS_TNM IS NULL)
+		)
 		UPDATE TB_GOODS A
-		SET A.UPD_NO = 99999
-		  , A.UPD_DT = NOW()
-		  , A.GOODS_TNM = (
-		                 SELECT S.GOODS_TNM
-		                 FROM TB_GOODS P
-		                    , (
-		                       SELECT GOODS_CD
-		                            , GOODS_TNM
-		                       FROM (
-		                             SELECT RS.GOODS_CD
-		                                  , RS.GOODS_TNM
-		                                  , RANK() OVER(PARTITION BY RS.GOODS_CD ORDER BY RS.GOODS_TNM_RES_SQ DESC) RK
-		                             FROM TB_GOODS_TNM_RES RS
-		                             WHERE NOW() BETWEEN RS.APPLY_STDT AND RS.APPLY_EDDT
-		                             AND RS.APPLY_YN = 'N'
-		                             ) Z
-		                       WHERE RK = 1
-		                      ) S
-		                   WHERE P.GOODS_CD = S.GOODS_CD
-		                   AND  P.GOODS_CD = A.GOODS_CD
-		                   AND (P.GOODS_TNM IS NULL OR P.GOODS_TNM <![CDATA[<>]]> S.GOODS_TNM)
-		                 )
-		WHERE A.GOODS_CD IN (
-		                   SELECT P.GOODS_CD
-		                   FROM TB_GOODS P
-		                       ,(SELECT GOODS_CD
-		                              , GOODS_TNM
-		                         FROM (
-		                              SELECT RS.GOODS_CD
-		                                   , RS.GOODS_TNM
-		                                   , RANK() OVER(PARTITION BY RS.GOODS_CD ORDER BY RS.GOODS_TNM_RES_SQ DESC) RK
-		                              FROM TB_GOODS_TNM_RES RS
-		                              WHERE NOW() BETWEEN RS.APPLY_STDT AND RS.APPLY_EDDT
-		                              AND RS.APPLY_YN = 'N'
-		                              ) Z
-		                         WHERE RK = 1
-		                        ) S
-		                   WHERE  P.GOODS_CD = S.GOODS_CD
-		                   AND (P.GOODS_TNM IS NULL OR P.GOODS_TNM <![CDATA[<>]]> S.GOODS_TNM)
-		                  )
+		SET    GOODS_TNM = (SELECT GOODS_TNM FROM TAB WHERE GOODS_CD = A.GOODS_CD)
+		     , A.UPD_NO = 99999
+		     , A.UPD_DT = NOW()
+		WHERE  GOODS_CD IN (SELECT GOODS_CD FROM TAB)
 	</update>
 
 	<!-- 상품 가격 예약건 초기화 -->