itn 2023-08-14
등급제 환불관련 쿼리 수정
@5fa902bfddede4ddaca202a6deefbcec19414931
src/main/resources/egovframework/sqlmap/let/sym/grd/MberGrd_SQL_Mysql.xml
--- src/main/resources/egovframework/sqlmap/let/sym/grd/MberGrd_SQL_Mysql.xml
+++ src/main/resources/egovframework/sqlmap/let/sym/grd/MberGrd_SQL_Mysql.xml
@@ -405,24 +405,35 @@
 			, M.AMT_SUM AS totAmt
 			, M.GRD_SET_NO AS grdSetNo 				
 		FROM (
-			SELECT 
-				S.USER_ID
-				, SUM(S.AMT) AS AMT_SUM_ORIGIN
-				, IFNULL(ROUND(SUM(R.TRNSF_CASH)), 0) AS REFUND_SUM
-				, (SUM(S.AMT) - IFNULL(ROUND(SUM(R.TRNSF_CASH)), 0) - IFNULL(SS.EVENT_FRST_CASH + ROUND(SS.EVENT_FRST_CASH / 10), 0)) AS AMT_SUM
-				, (
-					SELECT IFNULL(MIN(S1.GRD_SET_NO), (SELECT MAX(GRD_SET_NO) FROM MJ_MBER_GRD_SETTING)) FROM MJ_MBER_GRD_SETTING S1 WHERE S1.STD_AMT <= (SUM(S.AMT) - IFNULL(ROUND(SUM(R.TRNSF_CASH)), 0) - IFNULL(SS.EVENT_FRST_CASH + ROUND(SS.EVENT_FRST_CASH / 10), 0))
-				 ) GRD_SET_NO 
-			FROM MJ_PG S 
-			LEFT OUTER JOIN MJ_EVENT_MBER_INFO SS
-				ON S.USER_ID = SS.MBER_ID
-			LEFT OUTER JOIN MJ_REFUND R
-				ON S.USER_ID = R.MBER_ID 
-				AND R.REFUND_STATUS  = '3' 
-				AND R.REFUND_DIVISION = '1'
-			WHERE S.PG_STATUS = '1'	
-				AND S.REG_DATE >= CONCAT(DATE_FORMAT(#grdNewDate#, '%Y-%m-%d'), ' ', '00:00:00')
-			GROUP BY S.USER_ID
+				SELECT 
+					S2.USER_ID
+					, S2.AMT_SUM_ORIGIN
+					, IFNULL(ROUND((S2.AMT_SUM -S2.REFUND_SUM)), 0) AS AMT_SUM 
+					, S2.REFUND_SUM
+					, (
+						SELECT IFNULL(MIN(S1.GRD_SET_NO), (SELECT MAX(GRD_SET_NO) FROM MJ_MBER_GRD_SETTING)) FROM MJ_MBER_GRD_SETTING S1 WHERE S1.STD_AMT <= IFNULL(ROUND(S2.AMT_SUM), 0)
+					 ) GRD_SET_NO 
+				FROM (
+					SELECT 
+						S.USER_ID
+						, SUM(S.AMT) AS AMT_SUM_ORIGIN
+						, (SUM(S.AMT) - IFNULL(SS.EVENT_FRST_CASH + ROUND(SS.EVENT_FRST_CASH / 10), 0)) AS AMT_SUM
+						, (
+							SELECT IFNULL(ROUND(SUM(R.TRNSF_CASH)), 0) FROM MJ_REFUND R
+							WHERE S.USER_ID = R.MBER_ID
+								AND R.REFUND_STATUS  = '3' 
+								AND R.REFUND_DIVISION = '1'
+								AND R.REFUND_HANDLE_PNTTM >= (SELECT G.GRD_DATE FROM MJ_MBER_GRD_INFO G WHERE G.MBER_ID = S.USER_ID)
+						) REFUND_SUM					
+
+					FROM MJ_PG S 
+					LEFT OUTER JOIN MJ_EVENT_MBER_INFO SS
+						ON S.USER_ID = SS.MBER_ID
+						AND S.MOID = SS.EVENT_PG_MOID
+					WHERE S.PG_STATUS = '1'	
+						AND S.REG_DATE >= CONCAT(DATE_FORMAT(#grdNewDate#, '%Y-%m-%d'), ' ', '00:00:00')
+					GROUP BY S.USER_ID
+				) S2	
 		) M
 		WHERE M.GRD_SET_NO IS NOT NULL
 			AND M.AMT_SUM > 0
@@ -621,23 +632,34 @@
 				, M.GRD_SET_NO 				
 			FROM (
 				SELECT 
-					S.USER_ID
-					, SUM(S.AMT) AS AMT_SUM_ORIGIN
-					, IFNULL(ROUND(SUM(R.TRNSF_CASH)), 0) AS REFUND_SUM
-					, (SUM(S.AMT) - IFNULL(ROUND(SUM(R.TRNSF_CASH)), 0) - IFNULL(SS.EVENT_FRST_CASH + ROUND(SS.EVENT_FRST_CASH / 10), 0)) AS AMT_SUM
+					S2.USER_ID
+					, S2.AMT_SUM_ORIGIN
+					, IFNULL(ROUND((S2.AMT_SUM -S2.REFUND_SUM)), 0) AS AMT_SUM 
+					, S2.REFUND_SUM
 					, (
-						SELECT IFNULL(MIN(S1.GRD_SET_NO), (SELECT MAX(GRD_SET_NO) FROM MJ_MBER_GRD_SETTING)) FROM MJ_MBER_GRD_SETTING S1 WHERE S1.STD_AMT <= (SUM(S.AMT) - IFNULL(ROUND(SUM(R.TRNSF_CASH)), 0) - IFNULL(SS.EVENT_FRST_CASH + ROUND(SS.EVENT_FRST_CASH / 10), 0))
+						SELECT IFNULL(MIN(S1.GRD_SET_NO), (SELECT MAX(GRD_SET_NO) FROM MJ_MBER_GRD_SETTING)) FROM MJ_MBER_GRD_SETTING S1 WHERE S1.STD_AMT <= IFNULL(ROUND(S2.AMT_SUM), 0)
 					 ) GRD_SET_NO 
-				FROM MJ_PG S 
-				LEFT OUTER JOIN MJ_EVENT_MBER_INFO SS
-					ON S.USER_ID = SS.MBER_ID
-				LEFT OUTER JOIN MJ_REFUND R
-					ON S.USER_ID = R.MBER_ID 
-					AND R.REFUND_STATUS  = '3' 
-					AND R.REFUND_DIVISION = '1'					
-				WHERE S.PG_STATUS = '1'	
-					AND S.REG_DATE >= CONCAT(DATE_FORMAT(#grdNewDate#, '%Y-%m-%d'), ' ', '00:00:00')
-				GROUP BY S.USER_ID
+				FROM (
+					SELECT 
+						S.USER_ID
+						, SUM(S.AMT) AS AMT_SUM_ORIGIN
+						, (SUM(S.AMT) - IFNULL(SS.EVENT_FRST_CASH + ROUND(SS.EVENT_FRST_CASH / 10), 0)) AS AMT_SUM
+						, (
+							SELECT IFNULL(ROUND(SUM(R.TRNSF_CASH)), 0) FROM MJ_REFUND R
+							WHERE S.USER_ID = R.MBER_ID
+								AND R.REFUND_STATUS  = '3' 
+								AND R.REFUND_DIVISION = '1'
+								AND R.REFUND_HANDLE_PNTTM >= (SELECT G.GRD_DATE FROM MJ_MBER_GRD_INFO G WHERE G.MBER_ID = S.USER_ID)
+						) REFUND_SUM					
+
+					FROM MJ_PG S 
+					LEFT OUTER JOIN MJ_EVENT_MBER_INFO SS
+						ON S.USER_ID = SS.MBER_ID
+						AND S.MOID = SS.EVENT_PG_MOID
+					WHERE S.PG_STATUS = '1'	
+						AND S.REG_DATE >= CONCAT(DATE_FORMAT(#grdNewDate#, '%Y-%m-%d'), ' ', '00:00:00')
+					GROUP BY S.USER_ID
+				) S2			
 			) M
 			WHERE M.GRD_SET_NO IS NOT NULL
 				AND M.AMT_SUM > 0
@@ -679,23 +701,34 @@
 				, M.GRD_SET_NO 				
 			FROM (
 				SELECT 
-					S.USER_ID
-					, SUM(S.AMT) AS AMT_SUM_ORIGIN
-					, IFNULL(ROUND(SUM(R.TRNSF_CASH)), 0) AS REFUND_SUM
-					, (SUM(S.AMT) - IFNULL(ROUND(SUM(R.TRNSF_CASH)), 0) - IFNULL(SS.EVENT_FRST_CASH + ROUND(SS.EVENT_FRST_CASH / 10), 0)) AS AMT_SUM
+					S2.USER_ID
+					, S2.AMT_SUM_ORIGIN
+					, IFNULL(ROUND((S2.AMT_SUM -S2.REFUND_SUM)), 0) AS AMT_SUM 
+					, S2.REFUND_SUM
 					, (
-						SELECT IFNULL(MIN(S1.GRD_SET_NO), (SELECT MAX(GRD_SET_NO) FROM MJ_MBER_GRD_SETTING)) FROM MJ_MBER_GRD_SETTING S1 WHERE S1.STD_AMT <= (SUM(S.AMT) - IFNULL(ROUND(SUM(R.TRNSF_CASH)), 0) - IFNULL(SS.EVENT_FRST_CASH + ROUND(SS.EVENT_FRST_CASH / 10), 0))
+						SELECT IFNULL(MIN(S1.GRD_SET_NO), (SELECT MAX(GRD_SET_NO) FROM MJ_MBER_GRD_SETTING)) FROM MJ_MBER_GRD_SETTING S1 WHERE S1.STD_AMT <= IFNULL(ROUND(S2.AMT_SUM), 0)
 					 ) GRD_SET_NO 
-				FROM MJ_PG S 
-				LEFT OUTER JOIN MJ_EVENT_MBER_INFO SS
-					ON S.USER_ID = SS.MBER_ID
-				LEFT OUTER JOIN MJ_REFUND R
-					ON S.USER_ID = R.MBER_ID 
-					AND R.REFUND_STATUS  = '3' 
-					AND R.REFUND_DIVISION = '1'					
-				WHERE S.PG_STATUS = '1'	
-					AND S.REG_DATE >= CONCAT(DATE_FORMAT(#grdNewDate#, '%Y-%m-%d'), ' ', '00:00:00')
-				GROUP BY S.USER_ID
+				FROM (
+					SELECT 
+						S.USER_ID
+						, SUM(S.AMT) AS AMT_SUM_ORIGIN
+						, (SUM(S.AMT) - IFNULL(SS.EVENT_FRST_CASH + ROUND(SS.EVENT_FRST_CASH / 10), 0)) AS AMT_SUM
+						, (
+							SELECT IFNULL(ROUND(SUM(R.TRNSF_CASH)), 0) FROM MJ_REFUND R
+							WHERE S.USER_ID = R.MBER_ID
+								AND R.REFUND_STATUS  = '3' 
+								AND R.REFUND_DIVISION = '1'
+								AND R.REFUND_HANDLE_PNTTM >= (SELECT G.GRD_DATE FROM MJ_MBER_GRD_INFO G WHERE G.MBER_ID = S.USER_ID)
+						) REFUND_SUM					
+
+					FROM MJ_PG S 
+					LEFT OUTER JOIN MJ_EVENT_MBER_INFO SS
+						ON S.USER_ID = SS.MBER_ID
+						AND S.MOID = SS.EVENT_PG_MOID
+					WHERE S.PG_STATUS = '1'	
+						AND S.REG_DATE >= CONCAT(DATE_FORMAT(#grdNewDate#, '%Y-%m-%d'), ' ', '00:00:00')
+					GROUP BY S.USER_ID
+				) S2					
 			) M
 			WHERE M.GRD_SET_NO IS NOT NULL
 				AND M.AMT_SUM > 0
Add a comment
List