<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//ibatis.apache.org//DTD Mapper 3.0//EN" "http://ibatis.apache.org/dtd/ibatis-3-mapper.dtd"> 

<mapper namespace="kr.co.i2talk.cms">
	<select id="kr.co.i2talk.cms.getMaxDate" 
		parameterType="HashMap"
		resultType="java.util.LinkedHashMap">
		/* kr.co.i2talk.cms.getMaxDate */
		select max(BAS_DT) as MAXDATE
		from TB_MP_OD_SAZF_DDSBOVRLPFMC
	</select>
	
    <select id="kr.co.i2talk.cms.listRealTime"
		parameterType="HashMap"
		resultType="java.util.LinkedHashMap">
	/* kr.co.i2talk.cms.listRealTime */
	<![CDATA[
	SELECT BAS_DT, KDTP_DCD,KDTP_DS_NM, KDTP_DETL_DCD, KDTP_DETL_DS_NM,
	SUM_FSTU_PREM, ROUND((PREVIEW_GOAL.GOL_SUM_PREM/TB_CALEND.MM_WORK_DAY_CNT),0) AS DAY_GOAL,
	TMM_SUM_FSTU_PREM, 
	PREVIEW_GOAL.GOL_SUM_PREM, TO_CHAR(EDW_LOAD_DTM,'yyyy/mm/dd HH24:mm:ss') AS EDW_LOAD_DTM 
	FROM TB_MP_OD_SAZF_DDSBOVRLPFMC, 
		(WITH CALEND AS(
		SELECT DT , DECODE(TO_CHAR(DT,'D'),7,1,1,1,2) HOLI_DIV
		 FROM ( 
		 	
		 	 SELECT TO_DATE(SUBSTR(#{MAXDATE},1,6),'YYYYMM') + LEVEL - 1 DT 
		     FROM DUAL CONNECT BY LEVEL <= 31 )
		)
		SELECT COUNT(*) AS MM_WORK_DAY_CNT
		  FROM CALEND CALEND
		  WHERE CALEND.HOLI_DIV = '2' -- NON_HOLIDAY
		   AND CALEND.DT BETWEEN TO_DATE(SUBSTR(#{MAXDATE},1,6), 'YYYYMM') 
		            AND LAST_DAY(TO_DATE(SUBSTR(#{MAXDATE},1,6), 'YYYYMM'))
		) TB_CALEND,
	(SELECT GOL_SUM_PREM 
	FROM TB_MP_DM_SAZF_DDSBOVRLPFMC 
	WHERE BAS_DT = TO_CHAR(TO_DATE(#{MAXDATE})-1,'YYYYMMDD')
		AND KDTP_DCD = 'A' 
		AND KDTP_DETL_DCD = '00') PREVIEW_GOAL
WHERE KDTP_DCD = 'A' AND KDTP_DETL_DCD = '00'
	]]>
    </select>
    
    <select id="kr.co.i2talk.cms.listChannel"
		parameterType="HashMap"
		resultType="java.util.LinkedHashMap">
	/* kr.co.i2talk.cms.listChannel */
	SELECT BAS_DT, KDTP_DCD,KDTP_DS_NM, KDTP_DETL_DCD, KDTP_DETL_DS_NM, SUM_FSTU_PREM 
	FROM TB_MP_OD_SAZF_DDSBOVRLPFMC
	WHERE KDTP_DCD = 'C' AND BAS_DT = #{MAXDATE}
	order by KDTP_DETL_DCD
    </select>
    
    
    <select id="kr.co.i2talk.cms.listContract"
		parameterType="HashMap"
		resultType="java.util.LinkedHashMap">
	/* kr.co.i2talk.cms.listContract */
	SELECT BAS_DT, KDTP_DCD,KDTP_DS_NM, KDTP_DETL_DCD, KDTP_DETL_DS_NM,
		NML_CTR_CNT,NWBZ_CNT,VLD_CTR_EXCN_CNT 
	FROM TB_MP_DM_SAZF_DDSBOVRLPFMC
	WHERE KDTP_DCD = 'D' 
		AND KDTP_DETL_DCD IN ('01','02') 
		AND BAS_DT = #{MAXDATE}
	order by KDTP_DETL_DCD
    </select>
    
    <select id="kr.co.i2talk.cms.listChongkuk"
		parameterType="HashMap"
		resultType="java.util.LinkedHashMap">
	/* kr.co.i2talk.cms.listChongkuk */
	SELECT BAS_DT, KDTP_DCD,KDTP_DS_NM, KDTP_DETL_DCD, KDTP_DETL_DS_NM, SUM_FSTU_PREM 
	FROM TB_MP_OD_SAZF_DDSBOVRLPFMC
	WHERE KDTP_DCD = 'B' 
	AND BAS_DT = #{MAXDATE}
	order by KDTP_DETL_DCD
    </select>
	
	<select id="kr.co.i2talk.cms.listDay"
		parameterType="HashMap"
		resultType="java.util.LinkedHashMap">
		/* kr.co.i2talk.cms.listDay */
		<![CDATA[
		SELECT BAS_DT,  KDTP_DCD,KDTP_DS_NM, KDTP_DETL_DCD, KDTP_DETL_DS_NM,
		SUM_FSTU_PREM, ROUND(GOL_SUM_PREM/CAL_WORK_DAY.MM_WORK_DAY_CNT,0) AS DAY_GOAL, PRV_DAY, PRV_YEAR,
		TMM_SUM_FSTU_PREM, GOL_SUM_PREM, TYR_SUM_FSTU_PREM,NNL_GOL_SUM_PREM,
		NML_CTR_CNT, VLD_CTR_EXCN_CNT, NWBZ_CNT 
		 FROM (
			SELECT TB_TOTDATA.BAS_DT, TB_TOTDATA.KDTP_DCD, TB_TOTDATA.KDTP_DS_NM, TB_TOTDATA.KDTP_DETL_DCD, TB_TOTDATA.KDTP_DETL_DS_NM,
			TB_TOTDATA.SUM_FSTU_PREM,
			IFNULL((SELECT A.SUM_FSTU_PREM FROM TB_MP_DM_SAZF_DDSBOVRLPFMC A 
				WHERE A.BAS_DT = TO_CHAR(TO_DATE(TB_TOTDATA.BAS_DT)-1,'YYYYMMDD') 
				AND A.KDTP_DCD = TB_TOTDATA.KDTP_DCD 
				AND A.KDTP_DETL_DCD = TB_TOTDATA.KDTP_DETL_DCD),0) 
			AS PRV_DAY,
			IFNULL((SELECT B.SUM_FSTU_PREM FROM TB_MP_DM_SAZF_DDSBOVRLPFMC B 
				WHERE B.BAS_DT = 
				CASE WHEN SUBSTR(TB_TOTDATA.BAS_DT,5,4) = '0229'
		            THEN TO_CHAR(ADD_MONTHS(SUBSTR(TB_TOTDATA.BAS_DT,1,4) || '0228',-12),'YYYYMMDD')
		            ELSE TO_CHAR(ADD_MONTHS(TB_TOTDATA.BAS_DT,-12),'YYYYMMDD')
		       	END 
				AND B.KDTP_DCD = TB_TOTDATA.KDTP_DCD AND B.KDTP_DETL_DCD = TB_TOTDATA.KDTP_DETL_DCD),0) 
			AS PRV_YEAR,
			TB_TOTDATA.TMM_SUM_FSTU_PREM, TB_TOTDATA.GOL_SUM_PREM, TB_TOTDATA.TYR_SUM_FSTU_PREM, TB_TOTDATA.NNL_GOL_SUM_PREM,
			TB_TOTDATA.NML_CTR_CNT, TB_TOTDATA.VLD_CTR_EXCN_CNT, TB_TOTDATA.NWBZ_CNT 
			FROM TB_MP_DM_SAZF_DDSBOVRLPFMC TB_TOTDATA
			WHERE BAS_DT BETWEEN TO_CHAR(TO_DATE(#{date})-15,'YYYYMMDD') AND TO_CHAR(TO_DATE(#{date})-1,'YYYYMMDD')
			UNION
			SELECT TB_TOTDATA.BAS_DT, TB_TOTDATA.KDTP_DCD, TB_TOTDATA.KDTP_DS_NM, TB_TOTDATA.KDTP_DETL_DCD, TB_TOTDATA.KDTP_DETL_DS_NM,
			TB_TOTDATA.SUM_FSTU_PREM,
			IFNULL((SELECT A.SUM_FSTU_PREM FROM TB_MP_DM_SAZF_DDSBOVRLPFMC A 
				WHERE A.BAS_DT = TO_CHAR(TO_DATE(TB_TOTDATA.BAS_DT)-1,'YYYYMMDD') 
				AND A.KDTP_DCD = TB_TOTDATA.KDTP_DCD 
				AND A.KDTP_DETL_DCD = TB_TOTDATA.KDTP_DETL_DCD),0) 
			AS PRV_DAY,
			IFNULL((SELECT B.SUM_FSTU_PREM FROM TB_MP_DM_SAZF_DDSBOVRLPFMC B 
				WHERE B.BAS_DT = 
				CASE WHEN SUBSTR(TB_TOTDATA.BAS_DT,5,4) = '0229'
		            THEN TO_CHAR(ADD_MONTHS(SUBSTR(TB_TOTDATA.BAS_DT,1,4) || '0228',-12),'YYYYMMDD')
		            ELSE TO_CHAR(ADD_MONTHS(TB_TOTDATA.BAS_DT,-12),'YYYYMMDD')
		       	END 
				AND B.KDTP_DCD = TB_TOTDATA.KDTP_DCD AND B.KDTP_DETL_DCD = TB_TOTDATA.KDTP_DETL_DCD),0) 
			AS PRV_YEAR,
			TB_TOTDATA.TMM_SUM_FSTU_PREM, TB_TOTDATA.GOL_SUM_PREM, TB_TOTDATA.TYR_SUM_FSTU_PREM, TB_TOTDATA.NNL_GOL_SUM_PREM,
			TB_TOTDATA.NML_CTR_CNT, TB_TOTDATA.VLD_CTR_EXCN_CNT, TB_TOTDATA.NWBZ_CNT 
			FROM TB_MP_OD_SAZF_DDSBOVRLPFMC TB_TOTDATA
			WHERE BAS_DT = #{date}
		) , 
		(
		select TO_CHAR(TO_DATE(#{date})-14,'YYYYMMDD') as WORK_DATE, MM_WORK_DAY_CNT from (
		WITH CALEND AS(
			SELECT DT , DECODE(TO_CHAR(DT,'D'),7,1,1,1,2) HOLI_DIV
			 FROM ( SELECT TO_DATE(TO_CHAR(TO_DATE(#{date})-14,'YYYYMM'),'YYYYMM') + LEVEL - 1 DT 
			     FROM DUAL CONNECT BY LEVEL <= 31 )
			)
			SELECT COUNT(*) AS MM_WORK_DAY_CNT
			 FROM
			(SELECT TO_CHAR(CALEND.DT, 'YYYYMMDD') AS CALENDDT,
			    ROW_NUMBER() OVER(ORDER BY CALEND.DT DESC ) SEQ
			  FROM CALEND CALEND
			  WHERE CALEND.HOLI_DIV = '2' -- NON_HOLIDAY
			   AND CALEND.DT BETWEEN TO_DATE(TO_CHAR(TO_DATE(#{date})-14,'YYYYMM'), 'YYYYMM') 
			            AND LAST_DAY(TO_DATE(TO_CHAR(TO_DATE(#{date})-14,'YYYYMM'), 'YYYYMM'))
			) A
		)	
		union
		select TO_CHAR(TO_DATE(#{date})-14,'YYYYMMDD') as WORK_DATE, MM_WORK_DAY_CNT from (
		WITH CALEND AS(
			SELECT DT , DECODE(TO_CHAR(DT,'D'),7,1,1,1,2) HOLI_DIV
			 FROM ( SELECT TO_DATE(TO_CHAR(TO_DATE(#{date})-14,'YYYYMM'),'YYYYMM') + LEVEL - 1 DT 
			     FROM DUAL CONNECT BY LEVEL <= 31 )
			)
			SELECT COUNT(*) AS MM_WORK_DAY_CNT
			 FROM
			(SELECT TO_CHAR(CALEND.DT, 'YYYYMMDD') AS CALENDDT,
			    ROW_NUMBER() OVER(ORDER BY CALEND.DT DESC ) SEQ
			  FROM CALEND CALEND
			  WHERE CALEND.HOLI_DIV = '2' -- NON_HOLIDAY
			   AND CALEND.DT BETWEEN TO_DATE(TO_CHAR(TO_DATE(#{date})-14,'YYYYMM'), 'YYYYMM') 
			            AND LAST_DAY(TO_DATE(TO_CHAR(TO_DATE(#{date})-14,'YYYYMM'), 'YYYYMM'))
			) A
		)
		union
		select TO_CHAR(TO_DATE(#{date})-13,'YYYYMMDD') as WORK_DATE, MM_WORK_DAY_CNT from (
		WITH CALEND AS(
			SELECT DT , DECODE(TO_CHAR(DT,'D'),7,1,1,1,2) HOLI_DIV
			 FROM ( SELECT TO_DATE(TO_CHAR(TO_DATE(#{date})-13,'YYYYMM'),'YYYYMM') + LEVEL - 1 DT 
			     FROM DUAL CONNECT BY LEVEL <= 31 )
			)
			SELECT COUNT(*) AS MM_WORK_DAY_CNT
			 FROM
			(SELECT TO_CHAR(CALEND.DT, 'YYYYMMDD') AS CALENDDT,
			    ROW_NUMBER() OVER(ORDER BY CALEND.DT DESC ) SEQ
			  FROM CALEND CALEND
			  WHERE CALEND.HOLI_DIV = '2' -- NON_HOLIDAY
			   AND CALEND.DT BETWEEN TO_DATE(TO_CHAR(TO_DATE(#{date})-13,'YYYYMM'), 'YYYYMM') 
			            AND LAST_DAY(TO_DATE(TO_CHAR(TO_DATE(#{date})-13,'YYYYMM'), 'YYYYMM'))
			) A
		)union
		select TO_CHAR(TO_DATE(#{date})-12,'YYYYMMDD') as WORK_DATE, MM_WORK_DAY_CNT from (
		WITH CALEND AS(
			SELECT DT , DECODE(TO_CHAR(DT,'D'),7,1,1,1,2) HOLI_DIV
			 FROM ( SELECT TO_DATE(TO_CHAR(TO_DATE(#{date})-12,'YYYYMM'),'YYYYMM') + LEVEL - 1 DT 
			     FROM DUAL CONNECT BY LEVEL <= 31 )
			)
			SELECT COUNT(*) AS MM_WORK_DAY_CNT
			 FROM
			(SELECT TO_CHAR(CALEND.DT, 'YYYYMMDD') AS CALENDDT,
			    ROW_NUMBER() OVER(ORDER BY CALEND.DT DESC ) SEQ
			  FROM CALEND CALEND
			  WHERE CALEND.HOLI_DIV = '2' -- NON_HOLIDAY
			   AND CALEND.DT BETWEEN TO_DATE(TO_CHAR(TO_DATE(#{date})-12,'YYYYMM'), 'YYYYMM') 
			            AND LAST_DAY(TO_DATE(TO_CHAR(TO_DATE(#{date})-12,'YYYYMM'), 'YYYYMM'))
			) A
		)union
		select TO_CHAR(TO_DATE(#{date})-11,'YYYYMMDD') as WORK_DATE, MM_WORK_DAY_CNT from (
		WITH CALEND AS(
			SELECT DT , DECODE(TO_CHAR(DT,'D'),7,1,1,1,2) HOLI_DIV
			 FROM ( SELECT TO_DATE(TO_CHAR(TO_DATE(#{date})-11,'YYYYMM'),'YYYYMM') + LEVEL - 1 DT 
			     FROM DUAL CONNECT BY LEVEL <= 31 )
			)
			SELECT COUNT(*) AS MM_WORK_DAY_CNT
			 FROM
			(SELECT TO_CHAR(CALEND.DT, 'YYYYMMDD') AS CALENDDT,
			    ROW_NUMBER() OVER(ORDER BY CALEND.DT DESC ) SEQ
			  FROM CALEND CALEND
			  WHERE CALEND.HOLI_DIV = '2' -- NON_HOLIDAY
			   AND CALEND.DT BETWEEN TO_DATE(TO_CHAR(TO_DATE(#{date})-11,'YYYYMM'), 'YYYYMM') 
			            AND LAST_DAY(TO_DATE(TO_CHAR(TO_DATE(#{date})-11,'YYYYMM'), 'YYYYMM'))
			) A
		)union
		select TO_CHAR(TO_DATE(#{date})-10,'YYYYMMDD') as WORK_DATE, MM_WORK_DAY_CNT from (
		WITH CALEND AS(
			SELECT DT , DECODE(TO_CHAR(DT,'D'),7,1,1,1,2) HOLI_DIV
			 FROM ( SELECT TO_DATE(TO_CHAR(TO_DATE(#{date})-10,'YYYYMM'),'YYYYMM') + LEVEL - 1 DT 
			     FROM DUAL CONNECT BY LEVEL <= 31 )
			)
			SELECT COUNT(*) AS MM_WORK_DAY_CNT
			 FROM
			(SELECT TO_CHAR(CALEND.DT, 'YYYYMMDD') AS CALENDDT,
			    ROW_NUMBER() OVER(ORDER BY CALEND.DT DESC ) SEQ
			  FROM CALEND CALEND
			  WHERE CALEND.HOLI_DIV = '2' -- NON_HOLIDAY
			   AND CALEND.DT BETWEEN TO_DATE(TO_CHAR(TO_DATE(#{date})-10,'YYYYMM'), 'YYYYMM') 
			            AND LAST_DAY(TO_DATE(TO_CHAR(TO_DATE(#{date})-10,'YYYYMM'), 'YYYYMM'))
			) A
		)union
		select TO_CHAR(TO_DATE(#{date})-9,'YYYYMMDD') as WORK_DATE, MM_WORK_DAY_CNT from (
		WITH CALEND AS(
			SELECT DT , DECODE(TO_CHAR(DT,'D'),7,1,1,1,2) HOLI_DIV
			 FROM ( SELECT TO_DATE(TO_CHAR(TO_DATE(#{date})-9,'YYYYMM'),'YYYYMM') + LEVEL - 1 DT 
			     FROM DUAL CONNECT BY LEVEL <= 31 )
			)
			SELECT COUNT(*) AS MM_WORK_DAY_CNT
			 FROM
			(SELECT TO_CHAR(CALEND.DT, 'YYYYMMDD') AS CALENDDT,
			    ROW_NUMBER() OVER(ORDER BY CALEND.DT DESC ) SEQ
			  FROM CALEND CALEND
			  WHERE CALEND.HOLI_DIV = '2' -- NON_HOLIDAY
			   AND CALEND.DT BETWEEN TO_DATE(TO_CHAR(TO_DATE(#{date})-9,'YYYYMM'), 'YYYYMM') 
			            AND LAST_DAY(TO_DATE(TO_CHAR(TO_DATE(#{date})-9,'YYYYMM'), 'YYYYMM'))
			) A
		)union
		select TO_CHAR(TO_DATE(#{date})-8,'YYYYMMDD') as WORK_DATE, MM_WORK_DAY_CNT from (
		WITH CALEND AS(
			SELECT DT , DECODE(TO_CHAR(DT,'D'),7,1,1,1,2) HOLI_DIV
			 FROM ( SELECT TO_DATE(TO_CHAR(TO_DATE(#{date})-8,'YYYYMM'),'YYYYMM') + LEVEL - 1 DT 
			     FROM DUAL CONNECT BY LEVEL <= 31 )
			)
			SELECT COUNT(*) AS MM_WORK_DAY_CNT
			 FROM
			(SELECT TO_CHAR(CALEND.DT, 'YYYYMMDD') AS CALENDDT,
			    ROW_NUMBER() OVER(ORDER BY CALEND.DT DESC ) SEQ
			  FROM CALEND CALEND
			  WHERE CALEND.HOLI_DIV = '2' -- NON_HOLIDAY
			   AND CALEND.DT BETWEEN TO_DATE(TO_CHAR(TO_DATE(#{date})-8,'YYYYMM'), 'YYYYMM') 
			            AND LAST_DAY(TO_DATE(TO_CHAR(TO_DATE(#{date})-8,'YYYYMM'), 'YYYYMM'))
			) A
		)union
		select TO_CHAR(TO_DATE(#{date})-7,'YYYYMMDD') as WORK_DATE, MM_WORK_DAY_CNT from (
		WITH CALEND AS(
			SELECT DT , DECODE(TO_CHAR(DT,'D'),7,1,1,1,2) HOLI_DIV
			 FROM ( SELECT TO_DATE(TO_CHAR(TO_DATE(#{date})-7,'YYYYMM'),'YYYYMM') + LEVEL - 1 DT 
			     FROM DUAL CONNECT BY LEVEL <= 31 )
			)
			SELECT COUNT(*) AS MM_WORK_DAY_CNT
			 FROM
			(SELECT TO_CHAR(CALEND.DT, 'YYYYMMDD') AS CALENDDT,
			    ROW_NUMBER() OVER(ORDER BY CALEND.DT DESC ) SEQ
			  FROM CALEND CALEND
			  WHERE CALEND.HOLI_DIV = '2' -- NON_HOLIDAY
			   AND CALEND.DT BETWEEN TO_DATE(TO_CHAR(TO_DATE(#{date})-7,'YYYYMM'), 'YYYYMM') 
			            AND LAST_DAY(TO_DATE(TO_CHAR(TO_DATE(#{date})-7,'YYYYMM'), 'YYYYMM'))
			) A
		)union
		select TO_CHAR(TO_DATE(#{date})-6,'YYYYMMDD') as WORK_DATE, MM_WORK_DAY_CNT from (
		WITH CALEND AS(
			SELECT DT , DECODE(TO_CHAR(DT,'D'),7,1,1,1,2) HOLI_DIV
			 FROM ( SELECT TO_DATE(TO_CHAR(TO_DATE(#{date})-6,'YYYYMM'),'YYYYMM') + LEVEL - 1 DT 
			     FROM DUAL CONNECT BY LEVEL <= 31 )
			)
			SELECT COUNT(*) AS MM_WORK_DAY_CNT
			 FROM
			(SELECT TO_CHAR(CALEND.DT, 'YYYYMMDD') AS CALENDDT,
			    ROW_NUMBER() OVER(ORDER BY CALEND.DT DESC ) SEQ
			  FROM CALEND CALEND
			  WHERE CALEND.HOLI_DIV = '2' -- NON_HOLIDAY
			   AND CALEND.DT BETWEEN TO_DATE(TO_CHAR(TO_DATE(#{date})-6,'YYYYMM'), 'YYYYMM') 
			            AND LAST_DAY(TO_DATE(TO_CHAR(TO_DATE(#{date})-6,'YYYYMM'), 'YYYYMM'))
			) A
		)union
		select TO_CHAR(TO_DATE(#{date})-5,'YYYYMMDD') as WORK_DATE, MM_WORK_DAY_CNT from (
		WITH CALEND AS(
			SELECT DT , DECODE(TO_CHAR(DT,'D'),7,1,1,1,2) HOLI_DIV
			 FROM ( SELECT TO_DATE(TO_CHAR(TO_DATE(#{date})-5,'YYYYMM'),'YYYYMM') + LEVEL - 1 DT 
			     FROM DUAL CONNECT BY LEVEL <= 31 )
			)
			SELECT COUNT(*) AS MM_WORK_DAY_CNT
			 FROM
			(SELECT TO_CHAR(CALEND.DT, 'YYYYMMDD') AS CALENDDT,
			    ROW_NUMBER() OVER(ORDER BY CALEND.DT DESC ) SEQ
			  FROM CALEND CALEND
			  WHERE CALEND.HOLI_DIV = '2' -- NON_HOLIDAY
			   AND CALEND.DT BETWEEN TO_DATE(TO_CHAR(TO_DATE(#{date})-5,'YYYYMM'), 'YYYYMM') 
			            AND LAST_DAY(TO_DATE(TO_CHAR(TO_DATE(#{date})-5,'YYYYMM'), 'YYYYMM'))
			) A
		)union
		select TO_CHAR(TO_DATE(#{date})-4,'YYYYMMDD') as WORK_DATE, MM_WORK_DAY_CNT from (
		WITH CALEND AS(
			SELECT DT , DECODE(TO_CHAR(DT,'D'),7,1,1,1,2) HOLI_DIV
			 FROM ( SELECT TO_DATE(TO_CHAR(TO_DATE(#{date})-4,'YYYYMM'),'YYYYMM') + LEVEL - 1 DT 
			     FROM DUAL CONNECT BY LEVEL <= 31 )
			)
			SELECT COUNT(*) AS MM_WORK_DAY_CNT
			 FROM
			(SELECT TO_CHAR(CALEND.DT, 'YYYYMMDD') AS CALENDDT,
			    ROW_NUMBER() OVER(ORDER BY CALEND.DT DESC ) SEQ
			  FROM CALEND CALEND
			  WHERE CALEND.HOLI_DIV = '2' -- NON_HOLIDAY
			   AND CALEND.DT BETWEEN TO_DATE(TO_CHAR(TO_DATE(#{date})-4,'YYYYMM'), 'YYYYMM') 
			            AND LAST_DAY(TO_DATE(TO_CHAR(TO_DATE(#{date})-4,'YYYYMM'), 'YYYYMM'))
			) A
		)union
		select TO_CHAR(TO_DATE(#{date})-3,'YYYYMMDD') as WORK_DATE, MM_WORK_DAY_CNT from (
		WITH CALEND AS(
			SELECT DT , DECODE(TO_CHAR(DT,'D'),7,1,1,1,2) HOLI_DIV
			 FROM ( SELECT TO_DATE(TO_CHAR(TO_DATE(#{date})-3,'YYYYMM'),'YYYYMM') + LEVEL - 1 DT 
			     FROM DUAL CONNECT BY LEVEL <= 31 )
			)
			SELECT COUNT(*) AS MM_WORK_DAY_CNT
			 FROM
			(SELECT TO_CHAR(CALEND.DT, 'YYYYMMDD') AS CALENDDT,
			    ROW_NUMBER() OVER(ORDER BY CALEND.DT DESC ) SEQ
			  FROM CALEND CALEND
			  WHERE CALEND.HOLI_DIV = '2' -- NON_HOLIDAY
			   AND CALEND.DT BETWEEN TO_DATE(TO_CHAR(TO_DATE(#{date})-3,'YYYYMM'), 'YYYYMM') 
			            AND LAST_DAY(TO_DATE(TO_CHAR(TO_DATE(#{date})-3,'YYYYMM'), 'YYYYMM'))
			) A
		)union
		select TO_CHAR(TO_DATE(#{date})-2,'YYYYMMDD') as WORK_DATE, MM_WORK_DAY_CNT from (
		WITH CALEND AS(
			SELECT DT , DECODE(TO_CHAR(DT,'D'),7,1,1,1,2) HOLI_DIV
			 FROM ( SELECT TO_DATE(TO_CHAR(TO_DATE(#{date})-2,'YYYYMM'),'YYYYMM') + LEVEL - 1 DT 
			     FROM DUAL CONNECT BY LEVEL <= 31 )
			)
			SELECT COUNT(*) AS MM_WORK_DAY_CNT
			 FROM
			(SELECT TO_CHAR(CALEND.DT, 'YYYYMMDD') AS CALENDDT,
			    ROW_NUMBER() OVER(ORDER BY CALEND.DT DESC ) SEQ
			  FROM CALEND CALEND
			  WHERE CALEND.HOLI_DIV = '2' -- NON_HOLIDAY
			   AND CALEND.DT BETWEEN TO_DATE(TO_CHAR(TO_DATE(#{date})-2,'YYYYMM'), 'YYYYMM') 
			            AND LAST_DAY(TO_DATE(TO_CHAR(TO_DATE(#{date})-2,'YYYYMM'), 'YYYYMM'))
			) A
		)
		union
		select TO_CHAR(TO_DATE(#{date})-1,'YYYYMMDD') as WORK_DATE, MM_WORK_DAY_CNT from (
		WITH CALEND AS(
			SELECT DT , DECODE(TO_CHAR(DT,'D'),7,1,1,1,2) HOLI_DIV
			 FROM ( SELECT TO_DATE(TO_CHAR(TO_DATE(#{date})-1,'YYYYMM'),'YYYYMM') + LEVEL - 1 DT 
			     FROM DUAL CONNECT BY LEVEL <= 31 )
			)
			SELECT COUNT(*) AS MM_WORK_DAY_CNT
			 FROM
			(SELECT TO_CHAR(CALEND.DT, 'YYYYMMDD') AS CALENDDT,
			    ROW_NUMBER() OVER(ORDER BY CALEND.DT DESC ) SEQ
			  FROM CALEND CALEND
			  WHERE CALEND.HOLI_DIV = '2' -- NON_HOLIDAY
			   AND CALEND.DT BETWEEN TO_DATE(TO_CHAR(TO_DATE(#{date})-1,'YYYYMM'), 'YYYYMM') 
			            AND LAST_DAY(TO_DATE(TO_CHAR(TO_DATE(#{date})-1,'YYYYMM'), 'YYYYMM'))
			) A
		)
		union
		select TO_CHAR(TO_DATE(#{date})-0,'YYYYMMDD') as WORK_DATE, MM_WORK_DAY_CNT from (
		WITH CALEND AS(
			SELECT DT , DECODE(TO_CHAR(DT,'D'),7,1,1,1,2) HOLI_DIV
			 FROM ( SELECT TO_DATE(TO_CHAR(TO_DATE(#{date})-0,'YYYYMM'),'YYYYMM') + LEVEL - 1 DT 
			     FROM DUAL CONNECT BY LEVEL <= 31 )
			)
			SELECT COUNT(*) AS MM_WORK_DAY_CNT
			 FROM
			(SELECT TO_CHAR(CALEND.DT, 'YYYYMMDD') AS CALENDDT,
			    ROW_NUMBER() OVER(ORDER BY CALEND.DT DESC ) SEQ
			  FROM CALEND CALEND
			  WHERE CALEND.HOLI_DIV = '2' -- NON_HOLIDAY
			   AND CALEND.DT BETWEEN TO_DATE(TO_CHAR(TO_DATE(#{date})-0,'YYYYMM'), 'YYYYMM') 
			            AND LAST_DAY(TO_DATE(TO_CHAR(TO_DATE(#{date})-0,'YYYYMM'), 'YYYYMM'))
			) A
		)
		) CAL_WORK_DAY
		where BAS_DT = CAL_WORK_DAY.WORK_DATE 
		ORDER BY BAS_DT,KDTP_DCD,KDTP_DETL_DCD
		]]>
	</select>
	
	<select id="kr.co.i2talk.cms.listMonth"
		parameterType="HashMap"
		resultType="java.util.LinkedHashMap">
		/* kr.co.i2talk.cms.listMonth */
		<![CDATA[
		SELECT * FROM (
		SELECT BAS_DT, KDTP_DCD,KDTP_DS_NM,KDTP_DETL_DCD ,KDTP_DETL_DS_NM, 
			TMM_SUM_FSTU_PREM,GOL_SUM_PREM,
			IFNULL((SELECT A.TMM_SUM_FSTU_PREM FROM TB_MP_DM_SAZF_DDSBOVRLPFMC A 
				WHERE A.BAS_DT = (SELECT MAX(BAS_DT) FROM TB_MP_DM_SAZF_DDSBOVRLPFMC WHERE BAS_DT LIKE TO_CHAR(ADD_MONTHS(#{date},-1),'YYYYMM')||'%')
				AND A.KDTP_DCD = TB_TOTDATA.KDTP_DCD AND A.KDTP_DETL_DCD = TB_TOTDATA.KDTP_DETL_DCD),0) 
			AS PRV_MONTH,
			IFNULL((SELECT B.TMM_SUM_FSTU_PREM FROM TB_MP_DM_SAZF_DDSBOVRLPFMC B 
				WHERE B.BAS_DT = (SELECT MAX(BAS_DT) FROM TB_MP_DM_SAZF_DDSBOVRLPFMC WHERE BAS_DT LIKE TO_CHAR(ADD_MONTHS(#{date},-12),'YYYYMM')||'%')
				AND B.KDTP_DCD = TB_TOTDATA.KDTP_DCD AND B.KDTP_DETL_DCD = TB_TOTDATA.KDTP_DETL_DCD),0) 
			AS PRV_YEAR,
			TYR_SUM_FSTU_PREM, NNL_GOL_SUM_PREM,
			NML_CTR_CNT, VLD_CTR_EXCN_CNT, NWBZ_CNT
		FROM TB_MP_DM_SAZF_DDSBOVRLPFMC TB_TOTDATA
		WHERE BAS_DT = (SELECT MAX(BAS_DT) FROM TB_MP_DM_SAZF_DDSBOVRLPFMC WHERE BAS_DT LIKE TO_CHAR(ADD_MONTHS(#{date},0),'YYYYMM')||'%')
		UNION
		SELECT BAS_DT, KDTP_DCD,KDTP_DS_NM,KDTP_DETL_DCD ,KDTP_DETL_DS_NM, 
			TMM_SUM_FSTU_PREM,GOL_SUM_PREM,
			IFNULL((SELECT A.TMM_SUM_FSTU_PREM FROM TB_MP_DM_SAZF_DDSBOVRLPFMC A 
				WHERE A.BAS_DT = (SELECT MAX(BAS_DT) FROM TB_MP_DM_SAZF_DDSBOVRLPFMC WHERE BAS_DT LIKE TO_CHAR(ADD_MONTHS(#{date},-2),'YYYYMM')||'%')
				AND A.KDTP_DCD = TB_TOTDATA.KDTP_DCD AND A.KDTP_DETL_DCD = TB_TOTDATA.KDTP_DETL_DCD),0) 
			AS PRV_MONTH,
			IFNULL((SELECT B.TMM_SUM_FSTU_PREM FROM TB_MP_DM_SAZF_DDSBOVRLPFMC B 
				WHERE B.BAS_DT = (SELECT MAX(BAS_DT) FROM TB_MP_DM_SAZF_DDSBOVRLPFMC WHERE BAS_DT LIKE TO_CHAR(ADD_MONTHS(#{date},-13),'YYYYMM')||'%')
				AND B.KDTP_DCD = TB_TOTDATA.KDTP_DCD AND B.KDTP_DETL_DCD = TB_TOTDATA.KDTP_DETL_DCD),0) 
			AS PRV_YEAR,
			TYR_SUM_FSTU_PREM, NNL_GOL_SUM_PREM,
			NML_CTR_CNT, VLD_CTR_EXCN_CNT, NWBZ_CNT
		FROM TB_MP_DM_SAZF_DDSBOVRLPFMC TB_TOTDATA
		WHERE BAS_DT = (SELECT MAX(BAS_DT) FROM TB_MP_DM_SAZF_DDSBOVRLPFMC WHERE BAS_DT LIKE TO_CHAR(ADD_MONTHS(#{date},-1),'YYYYMM')||'%')
		UNION
		SELECT BAS_DT, KDTP_DCD,KDTP_DS_NM,KDTP_DETL_DCD ,KDTP_DETL_DS_NM, 
			TMM_SUM_FSTU_PREM,GOL_SUM_PREM,
			IFNULL((SELECT A.TMM_SUM_FSTU_PREM FROM TB_MP_DM_SAZF_DDSBOVRLPFMC A 
				WHERE A.BAS_DT = (SELECT MAX(BAS_DT) FROM TB_MP_DM_SAZF_DDSBOVRLPFMC WHERE BAS_DT LIKE TO_CHAR(ADD_MONTHS(#{date},-3),'YYYYMM')||'%')
				AND A.KDTP_DCD = TB_TOTDATA.KDTP_DCD AND A.KDTP_DETL_DCD = TB_TOTDATA.KDTP_DETL_DCD),0) 
			AS PRV_MONTH,
			IFNULL((SELECT B.TMM_SUM_FSTU_PREM FROM TB_MP_DM_SAZF_DDSBOVRLPFMC B 
				WHERE B.BAS_DT = (SELECT MAX(BAS_DT) FROM TB_MP_DM_SAZF_DDSBOVRLPFMC WHERE BAS_DT LIKE TO_CHAR(ADD_MONTHS(#{date},-14),'YYYYMM')||'%')
				AND B.KDTP_DCD = TB_TOTDATA.KDTP_DCD AND B.KDTP_DETL_DCD = TB_TOTDATA.KDTP_DETL_DCD),0) 
			AS PRV_YEAR,
			TYR_SUM_FSTU_PREM, NNL_GOL_SUM_PREM,
			NML_CTR_CNT, VLD_CTR_EXCN_CNT, NWBZ_CNT
		FROM TB_MP_DM_SAZF_DDSBOVRLPFMC TB_TOTDATA
		WHERE BAS_DT = (SELECT MAX(BAS_DT) FROM TB_MP_DM_SAZF_DDSBOVRLPFMC WHERE BAS_DT LIKE TO_CHAR(ADD_MONTHS(#{date},-2),'YYYYMM')||'%')
		UNION
		SELECT BAS_DT, KDTP_DCD,KDTP_DS_NM,KDTP_DETL_DCD ,KDTP_DETL_DS_NM, 
			TMM_SUM_FSTU_PREM,GOL_SUM_PREM,
			IFNULL((SELECT A.TMM_SUM_FSTU_PREM FROM TB_MP_DM_SAZF_DDSBOVRLPFMC A 
				WHERE A.BAS_DT = (SELECT MAX(BAS_DT) FROM TB_MP_DM_SAZF_DDSBOVRLPFMC WHERE BAS_DT LIKE TO_CHAR(ADD_MONTHS(#{date},-4),'YYYYMM')||'%')
				AND A.KDTP_DCD = TB_TOTDATA.KDTP_DCD AND A.KDTP_DETL_DCD = TB_TOTDATA.KDTP_DETL_DCD),0) 
			AS PRV_MONTH,
			IFNULL((SELECT B.TMM_SUM_FSTU_PREM FROM TB_MP_DM_SAZF_DDSBOVRLPFMC B 
				WHERE B.BAS_DT = (SELECT MAX(BAS_DT) FROM TB_MP_DM_SAZF_DDSBOVRLPFMC WHERE BAS_DT LIKE TO_CHAR(ADD_MONTHS(#{date},-15),'YYYYMM')||'%')
				AND B.KDTP_DCD = TB_TOTDATA.KDTP_DCD AND B.KDTP_DETL_DCD = TB_TOTDATA.KDTP_DETL_DCD),0) 
			AS PRV_YEAR,
			TYR_SUM_FSTU_PREM, NNL_GOL_SUM_PREM,
			NML_CTR_CNT, VLD_CTR_EXCN_CNT, NWBZ_CNT
		FROM TB_MP_DM_SAZF_DDSBOVRLPFMC TB_TOTDATA
		WHERE BAS_DT = (SELECT MAX(BAS_DT) FROM TB_MP_DM_SAZF_DDSBOVRLPFMC WHERE BAS_DT LIKE TO_CHAR(ADD_MONTHS(#{date},-3),'YYYYMM')||'%')
		UNION
		SELECT BAS_DT, KDTP_DCD,KDTP_DS_NM,KDTP_DETL_DCD ,KDTP_DETL_DS_NM, 
			TMM_SUM_FSTU_PREM,GOL_SUM_PREM,
			IFNULL((SELECT A.TMM_SUM_FSTU_PREM FROM TB_MP_DM_SAZF_DDSBOVRLPFMC A 
				WHERE A.BAS_DT = (SELECT MAX(BAS_DT) FROM TB_MP_DM_SAZF_DDSBOVRLPFMC WHERE BAS_DT LIKE TO_CHAR(ADD_MONTHS(#{date},-5),'YYYYMM')||'%')
				AND A.KDTP_DCD = TB_TOTDATA.KDTP_DCD AND A.KDTP_DETL_DCD = TB_TOTDATA.KDTP_DETL_DCD),0) 
			AS PRV_MONTH,
			IFNULL((SELECT B.TMM_SUM_FSTU_PREM FROM TB_MP_DM_SAZF_DDSBOVRLPFMC B 
				WHERE B.BAS_DT = (SELECT MAX(BAS_DT) FROM TB_MP_DM_SAZF_DDSBOVRLPFMC WHERE BAS_DT LIKE TO_CHAR(ADD_MONTHS(#{date},-16),'YYYYMM')||'%')
				AND B.KDTP_DCD = TB_TOTDATA.KDTP_DCD AND B.KDTP_DETL_DCD = TB_TOTDATA.KDTP_DETL_DCD),0) 
			AS PRV_YEAR,
			TYR_SUM_FSTU_PREM, NNL_GOL_SUM_PREM,
			NML_CTR_CNT, VLD_CTR_EXCN_CNT, NWBZ_CNT
		FROM TB_MP_DM_SAZF_DDSBOVRLPFMC TB_TOTDATA
		WHERE BAS_DT = (SELECT MAX(BAS_DT) FROM TB_MP_DM_SAZF_DDSBOVRLPFMC WHERE BAS_DT LIKE TO_CHAR(ADD_MONTHS(#{date},-4),'YYYYMM')||'%')
		UNION
		SELECT BAS_DT, KDTP_DCD,KDTP_DS_NM,KDTP_DETL_DCD ,KDTP_DETL_DS_NM, 
			TMM_SUM_FSTU_PREM,GOL_SUM_PREM,
			IFNULL((SELECT A.TMM_SUM_FSTU_PREM FROM TB_MP_DM_SAZF_DDSBOVRLPFMC A 
				WHERE A.BAS_DT = (SELECT MAX(BAS_DT) FROM TB_MP_DM_SAZF_DDSBOVRLPFMC WHERE BAS_DT LIKE TO_CHAR(ADD_MONTHS(#{date},-6),'YYYYMM')||'%')
				AND A.KDTP_DCD = TB_TOTDATA.KDTP_DCD AND A.KDTP_DETL_DCD = TB_TOTDATA.KDTP_DETL_DCD),0) 
			AS PRV_MONTH,
			IFNULL((SELECT B.TMM_SUM_FSTU_PREM FROM TB_MP_DM_SAZF_DDSBOVRLPFMC B 
				WHERE B.BAS_DT = (SELECT MAX(BAS_DT) FROM TB_MP_DM_SAZF_DDSBOVRLPFMC WHERE BAS_DT LIKE TO_CHAR(ADD_MONTHS(#{date},-17),'YYYYMM')||'%')
				AND B.KDTP_DCD = TB_TOTDATA.KDTP_DCD AND B.KDTP_DETL_DCD = TB_TOTDATA.KDTP_DETL_DCD),0) 
			AS PRV_YEAR,
			TYR_SUM_FSTU_PREM, NNL_GOL_SUM_PREM,
			NML_CTR_CNT, VLD_CTR_EXCN_CNT, NWBZ_CNT
		FROM TB_MP_DM_SAZF_DDSBOVRLPFMC TB_TOTDATA
		WHERE BAS_DT = (SELECT MAX(BAS_DT) FROM TB_MP_DM_SAZF_DDSBOVRLPFMC WHERE BAS_DT LIKE TO_CHAR(ADD_MONTHS(#{date},-5),'YYYYMM')||'%')
		UNION
			SELECT BAS_DT, KDTP_DCD,KDTP_DS_NM,KDTP_DETL_DCD ,KDTP_DETL_DS_NM, 
			TMM_SUM_FSTU_PREM,GOL_SUM_PREM,
			IFNULL((SELECT A.TMM_SUM_FSTU_PREM FROM TB_MP_DM_SAZF_DDSBOVRLPFMC A 
				WHERE A.BAS_DT = (SELECT MAX(BAS_DT) FROM TB_MP_DM_SAZF_DDSBOVRLPFMC WHERE BAS_DT LIKE TO_CHAR(ADD_MONTHS(#{date},-7),'YYYYMM')||'%')
				AND A.KDTP_DCD = TB_TOTDATA.KDTP_DCD AND A.KDTP_DETL_DCD = TB_TOTDATA.KDTP_DETL_DCD),0) 
			AS PRV_MONTH,
			IFNULL((SELECT B.TMM_SUM_FSTU_PREM FROM TB_MP_DM_SAZF_DDSBOVRLPFMC B 
				WHERE B.BAS_DT = (SELECT MAX(BAS_DT) FROM TB_MP_DM_SAZF_DDSBOVRLPFMC WHERE BAS_DT LIKE TO_CHAR(ADD_MONTHS(#{date},-18),'YYYYMM')||'%')
				AND B.KDTP_DCD = TB_TOTDATA.KDTP_DCD AND B.KDTP_DETL_DCD = TB_TOTDATA.KDTP_DETL_DCD),0) 
			AS PRV_YEAR,
			TYR_SUM_FSTU_PREM, NNL_GOL_SUM_PREM,
			NML_CTR_CNT, VLD_CTR_EXCN_CNT, NWBZ_CNT
		FROM TB_MP_DM_SAZF_DDSBOVRLPFMC TB_TOTDATA
		WHERE BAS_DT = (SELECT MAX(BAS_DT) FROM TB_MP_DM_SAZF_DDSBOVRLPFMC WHERE BAS_DT LIKE TO_CHAR(ADD_MONTHS(#{date},-6),'YYYYMM')||'%')
		UNION
		SELECT BAS_DT, KDTP_DCD,KDTP_DS_NM,KDTP_DETL_DCD ,KDTP_DETL_DS_NM, 
			TMM_SUM_FSTU_PREM,GOL_SUM_PREM,
			IFNULL((SELECT A.TMM_SUM_FSTU_PREM FROM TB_MP_DM_SAZF_DDSBOVRLPFMC A 
				WHERE A.BAS_DT = (SELECT MAX(BAS_DT) FROM TB_MP_DM_SAZF_DDSBOVRLPFMC WHERE BAS_DT LIKE TO_CHAR(ADD_MONTHS(#{date},-8),'YYYYMM')||'%')
				AND A.KDTP_DCD = TB_TOTDATA.KDTP_DCD AND A.KDTP_DETL_DCD = TB_TOTDATA.KDTP_DETL_DCD),0) 
			AS PRV_MONTH,
			IFNULL((SELECT B.TMM_SUM_FSTU_PREM FROM TB_MP_DM_SAZF_DDSBOVRLPFMC B 
				WHERE B.BAS_DT = (SELECT MAX(BAS_DT) FROM TB_MP_DM_SAZF_DDSBOVRLPFMC WHERE BAS_DT LIKE TO_CHAR(ADD_MONTHS(#{date},-19),'YYYYMM')||'%')
				AND B.KDTP_DCD = TB_TOTDATA.KDTP_DCD AND B.KDTP_DETL_DCD = TB_TOTDATA.KDTP_DETL_DCD),0) 
			AS PRV_YEAR,
			TYR_SUM_FSTU_PREM, NNL_GOL_SUM_PREM,
			NML_CTR_CNT, VLD_CTR_EXCN_CNT, NWBZ_CNT
		FROM TB_MP_DM_SAZF_DDSBOVRLPFMC TB_TOTDATA
		WHERE BAS_DT = (SELECT MAX(BAS_DT) FROM TB_MP_DM_SAZF_DDSBOVRLPFMC WHERE BAS_DT LIKE TO_CHAR(ADD_MONTHS(#{date},-7),'YYYYMM')||'%')
		UNION
		SELECT BAS_DT, KDTP_DCD,KDTP_DS_NM,KDTP_DETL_DCD ,KDTP_DETL_DS_NM, 
			TMM_SUM_FSTU_PREM,GOL_SUM_PREM,
			IFNULL((SELECT A.TMM_SUM_FSTU_PREM FROM TB_MP_DM_SAZF_DDSBOVRLPFMC A 
				WHERE A.BAS_DT = (SELECT MAX(BAS_DT) FROM TB_MP_DM_SAZF_DDSBOVRLPFMC WHERE BAS_DT LIKE TO_CHAR(ADD_MONTHS(#{date},-9),'YYYYMM')||'%')
				AND A.KDTP_DCD = TB_TOTDATA.KDTP_DCD AND A.KDTP_DETL_DCD = TB_TOTDATA.KDTP_DETL_DCD),0) 
			AS PRV_MONTH,
			IFNULL((SELECT B.TMM_SUM_FSTU_PREM FROM TB_MP_DM_SAZF_DDSBOVRLPFMC B 
				WHERE B.BAS_DT = (SELECT MAX(BAS_DT) FROM TB_MP_DM_SAZF_DDSBOVRLPFMC WHERE BAS_DT LIKE TO_CHAR(ADD_MONTHS(#{date},-20),'YYYYMM')||'%')
				AND B.KDTP_DCD = TB_TOTDATA.KDTP_DCD AND B.KDTP_DETL_DCD = TB_TOTDATA.KDTP_DETL_DCD),0) 
			AS PRV_YEAR,
			TYR_SUM_FSTU_PREM, NNL_GOL_SUM_PREM,
			NML_CTR_CNT, VLD_CTR_EXCN_CNT, NWBZ_CNT
		FROM TB_MP_DM_SAZF_DDSBOVRLPFMC TB_TOTDATA
		WHERE BAS_DT = (SELECT MAX(BAS_DT) FROM TB_MP_DM_SAZF_DDSBOVRLPFMC WHERE BAS_DT LIKE TO_CHAR(ADD_MONTHS(#{date},-8),'YYYYMM')||'%')
		UNION
		SELECT BAS_DT, KDTP_DCD,KDTP_DS_NM,KDTP_DETL_DCD ,KDTP_DETL_DS_NM, 
			TMM_SUM_FSTU_PREM,GOL_SUM_PREM,
			IFNULL((SELECT A.TMM_SUM_FSTU_PREM FROM TB_MP_DM_SAZF_DDSBOVRLPFMC A 
				WHERE A.BAS_DT = (SELECT MAX(BAS_DT) FROM TB_MP_DM_SAZF_DDSBOVRLPFMC WHERE BAS_DT LIKE TO_CHAR(ADD_MONTHS(#{date},-10),'YYYYMM')||'%')
				AND A.KDTP_DCD = TB_TOTDATA.KDTP_DCD AND A.KDTP_DETL_DCD = TB_TOTDATA.KDTP_DETL_DCD),0) 
			AS PRV_MONTH,
			IFNULL((SELECT B.TMM_SUM_FSTU_PREM FROM TB_MP_DM_SAZF_DDSBOVRLPFMC B 
				WHERE B.BAS_DT = (SELECT MAX(BAS_DT) FROM TB_MP_DM_SAZF_DDSBOVRLPFMC WHERE BAS_DT LIKE TO_CHAR(ADD_MONTHS(#{date},-21),'YYYYMM')||'%')
				AND B.KDTP_DCD = TB_TOTDATA.KDTP_DCD AND B.KDTP_DETL_DCD = TB_TOTDATA.KDTP_DETL_DCD),0) 
			AS PRV_YEAR,
			TYR_SUM_FSTU_PREM, NNL_GOL_SUM_PREM,
			NML_CTR_CNT, VLD_CTR_EXCN_CNT, NWBZ_CNT
		FROM TB_MP_DM_SAZF_DDSBOVRLPFMC TB_TOTDATA
		WHERE BAS_DT = (SELECT MAX(BAS_DT) FROM TB_MP_DM_SAZF_DDSBOVRLPFMC WHERE BAS_DT LIKE TO_CHAR(ADD_MONTHS(#{date},-9),'YYYYMM')||'%')
		UNION
		SELECT BAS_DT, KDTP_DCD,KDTP_DS_NM,KDTP_DETL_DCD ,KDTP_DETL_DS_NM, 
			TMM_SUM_FSTU_PREM,GOL_SUM_PREM,
			IFNULL((SELECT A.TMM_SUM_FSTU_PREM FROM TB_MP_DM_SAZF_DDSBOVRLPFMC A 
				WHERE A.BAS_DT = (SELECT MAX(BAS_DT) FROM TB_MP_DM_SAZF_DDSBOVRLPFMC WHERE BAS_DT LIKE TO_CHAR(ADD_MONTHS(#{date},-11),'YYYYMM')||'%')
				AND A.KDTP_DCD = TB_TOTDATA.KDTP_DCD AND A.KDTP_DETL_DCD = TB_TOTDATA.KDTP_DETL_DCD),0) 
			AS PRV_MONTH,
			IFNULL((SELECT B.TMM_SUM_FSTU_PREM FROM TB_MP_DM_SAZF_DDSBOVRLPFMC B 
				WHERE B.BAS_DT = (SELECT MAX(BAS_DT) FROM TB_MP_DM_SAZF_DDSBOVRLPFMC WHERE BAS_DT LIKE TO_CHAR(ADD_MONTHS(#{date},-22),'YYYYMM')||'%')
				AND B.KDTP_DCD = TB_TOTDATA.KDTP_DCD AND B.KDTP_DETL_DCD = TB_TOTDATA.KDTP_DETL_DCD),0) 
			AS PRV_YEAR,
			TYR_SUM_FSTU_PREM, NNL_GOL_SUM_PREM,
			NML_CTR_CNT, VLD_CTR_EXCN_CNT, NWBZ_CNT
		FROM TB_MP_DM_SAZF_DDSBOVRLPFMC TB_TOTDATA
		WHERE BAS_DT = (SELECT MAX(BAS_DT) FROM TB_MP_DM_SAZF_DDSBOVRLPFMC WHERE BAS_DT LIKE TO_CHAR(ADD_MONTHS(#{date},-10),'YYYYMM')||'%')
		UNION
		SELECT BAS_DT, KDTP_DCD,KDTP_DS_NM,KDTP_DETL_DCD ,KDTP_DETL_DS_NM, 
			TMM_SUM_FSTU_PREM,GOL_SUM_PREM,
			IFNULL((SELECT A.TMM_SUM_FSTU_PREM FROM TB_MP_DM_SAZF_DDSBOVRLPFMC A 
				WHERE A.BAS_DT = (SELECT MAX(BAS_DT) FROM TB_MP_DM_SAZF_DDSBOVRLPFMC WHERE BAS_DT LIKE TO_CHAR(ADD_MONTHS(#{date},-12),'YYYYMM')||'%')
				AND A.KDTP_DCD = TB_TOTDATA.KDTP_DCD AND A.KDTP_DETL_DCD = TB_TOTDATA.KDTP_DETL_DCD),0) 
			AS PRV_MONTH,
			IFNULL((SELECT B.TMM_SUM_FSTU_PREM FROM TB_MP_DM_SAZF_DDSBOVRLPFMC B 
				WHERE B.BAS_DT = (SELECT MAX(BAS_DT) FROM TB_MP_DM_SAZF_DDSBOVRLPFMC WHERE BAS_DT LIKE TO_CHAR(ADD_MONTHS(#{date},-23),'YYYYMM')||'%')
				AND B.KDTP_DCD = TB_TOTDATA.KDTP_DCD AND B.KDTP_DETL_DCD = TB_TOTDATA.KDTP_DETL_DCD),0) 
			AS PRV_YEAR,
			TYR_SUM_FSTU_PREM, NNL_GOL_SUM_PREM,
			NML_CTR_CNT, VLD_CTR_EXCN_CNT, NWBZ_CNT
		FROM TB_MP_DM_SAZF_DDSBOVRLPFMC TB_TOTDATA
		WHERE BAS_DT = (SELECT MAX(BAS_DT) FROM TB_MP_DM_SAZF_DDSBOVRLPFMC WHERE BAS_DT LIKE TO_CHAR(ADD_MONTHS(#{date},-11),'YYYYMM')||'%')
	) 
	ORDER BY BAS_DT, KDTP_DCD, KDTP_DETL_DCD
		]]>
	</select>
	
	<select id="kr.co.i2talk.cms.listSpotMonthInitialPremium"
		parameterType="HashMap"
		resultType="java.util.LinkedHashMap">
		/* kr.co.i2talk.cms.listSpotMonthInitialPremium */
		<![CDATA[	
		SELECT BAS_DT, KDTP_DCD,KDTP_DS_NM, KDTP_DETL_DCD, KDTP_DETL_DS_NM
			GOL_SUM_PREM, TMM_SUM_FSTU_PREM, SUCCE_RATE, UP_RATE, BFYY_CMPR_TMM_SUM_PREM, TMM_SCRT_PREM, SAVE_RATE
		  FROM (
				SELECT BAS_DT, KDTP_DCD,KDTP_DS_NM, 
				KDTP_DETL_DCD,KDTP_DETL_DS_NM, GOL_SUM_PREM, TMM_SUM_FSTU_PREM, 
				CASE WHEN GOL_SUM_PREM > 0 
					THEN ROUND((TMM_SUM_FSTU_PREM/GOL_SUM_PREM)*100,1)
					ELSE 0
				END AS SUCCE_RATE,
				CASE WHEN BFYY_CMPR_TMM_SUM_PREM > 0 
					THEN ROUND((TMM_SUM_FSTU_PREM-BFYY_CMPR_TMM_SUM_PREM)/BFYY_CMPR_TMM_SUM_PREM*100,1)
					ELSE 0
				END AS UP_RATE, BFYY_CMPR_TMM_SUM_PREM, TMM_SCRT_PREM,
				CASE WHEN TMM_SUM_FSTU_PREM > 0 
					THEN ROUND((TMM_SCRT_PREM/TMM_SUM_FSTU_PREM*100),1)
					ELSE 0
				END AS SAVE_RATE FROM TB_MP_DM_SAZF_DDSBPFMCPSTT 
				WHERE BAS_DT BETWEEN TO_CHAR(TO_DATE(#{date})-14,'YYYYMMDD') AND #{date}
		) ORDER BY BAS_DT, KDTP_DCD, KDTP_DETL_DCD
		]]>
	</select>
	
	<select id="kr.co.i2talk.cms.listMonthlyInitialPremium"
		parameterType="HashMap"
		resultType="java.util.LinkedHashMap">
		/* kr.co.i2talk.cms.listMonthlyInitialPremium */
		<![CDATA[	
		SELECT BAS_DT, KDTP_DCD, KDTP_DS_NM, 
KDTP_DETL_DCD, KDTP_DETL_DS_NM, GOL_SUM_PREM, TMM_SUM_FSTU_PREM, SUCCE_RATE, UP_RATE, BFYY_CMPR_TMM_SUM_PREM, TMM_SCRT_PREM, SAVE_RATE 
  FROM (
		SELECT BAS_DT, KDTP_DCD, KDTP_DS_NM, 
		KDTP_DETL_DCD, KDTP_DETL_DS_NM, GOL_SUM_PREM, TMM_SUM_FSTU_PREM, 
		CASE WHEN GOL_SUM_PREM > 0 
			THEN ROUND((TMM_SUM_FSTU_PREM/GOL_SUM_PREM)*100,1)
			ELSE 0
		END AS SUCCE_RATE,
		CASE WHEN BFYY_CMPR_TMM_SUM_PREM > 0 
			THEN ROUND((TMM_SUM_FSTU_PREM-BFYY_CMPR_TMM_SUM_PREM)/BFYY_CMPR_TMM_SUM_PREM*100,1)
			ELSE 0
		END AS UP_RATE, BFYY_CMPR_TMM_SUM_PREM, TMM_SCRT_PREM,
		CASE WHEN TMM_SUM_FSTU_PREM > 0 
			THEN ROUND((TMM_SCRT_PREM/TMM_SUM_FSTU_PREM*100),1)
			ELSE 0
		END AS SAVE_RATE FROM TB_MP_DM_SAZF_DDSBPFMCPSTT 
		WHERE BAS_DT = (SELECT MAX(BAS_DT) FROM TB_MP_DM_SAZF_DDSBPFMCPSTT WHERE BAS_DT LIKE TO_CHAR(ADD_MONTHS(#{date},0),'YYYYMM')||'%')
		UNION
		SELECT BAS_DT, KDTP_DCD, KDTP_DS_NM, 
		KDTP_DETL_DCD, KDTP_DETL_DS_NM, GOL_SUM_PREM, TMM_SUM_FSTU_PREM, 
		CASE WHEN GOL_SUM_PREM > 0 
			THEN ROUND((TMM_SUM_FSTU_PREM/GOL_SUM_PREM)*100,1)
			ELSE 0
		END AS SUCCE_RATE,
		CASE WHEN BFYY_CMPR_TMM_SUM_PREM > 0 
			THEN ROUND((TMM_SUM_FSTU_PREM-BFYY_CMPR_TMM_SUM_PREM)/BFYY_CMPR_TMM_SUM_PREM*100,1)
			ELSE 0
		END AS UP_RATE, BFYY_CMPR_TMM_SUM_PREM, TMM_SCRT_PREM,
		CASE WHEN TMM_SUM_FSTU_PREM > 0 
			THEN ROUND((TMM_SCRT_PREM/TMM_SUM_FSTU_PREM*100),1)
			ELSE 0
		END AS SAVE_RATE FROM TB_MP_DM_SAZF_DDSBPFMCPSTT 
		WHERE BAS_DT = (SELECT MAX(BAS_DT) FROM TB_MP_DM_SAZF_DDSBPFMCPSTT WHERE BAS_DT LIKE TO_CHAR(ADD_MONTHS(#{date},-1),'YYYYMM')||'%')
		UNION
		SELECT BAS_DT, KDTP_DCD, KDTP_DS_NM, 
		KDTP_DETL_DCD, KDTP_DETL_DS_NM, GOL_SUM_PREM, TMM_SUM_FSTU_PREM, 
		CASE WHEN GOL_SUM_PREM > 0 
			THEN ROUND((TMM_SUM_FSTU_PREM/GOL_SUM_PREM)*100,1)
			ELSE 0
		END AS SUCCE_RATE,
		CASE WHEN BFYY_CMPR_TMM_SUM_PREM > 0 
			THEN ROUND((TMM_SUM_FSTU_PREM-BFYY_CMPR_TMM_SUM_PREM)/BFYY_CMPR_TMM_SUM_PREM*100,1)
			ELSE 0
		END AS UP_RATE, BFYY_CMPR_TMM_SUM_PREM, TMM_SCRT_PREM,
		CASE WHEN TMM_SUM_FSTU_PREM > 0 
			THEN ROUND((TMM_SCRT_PREM/TMM_SUM_FSTU_PREM*100),1)
			ELSE 0
		END AS SAVE_RATE FROM TB_MP_DM_SAZF_DDSBPFMCPSTT 
		WHERE BAS_DT = (SELECT MAX(BAS_DT) FROM TB_MP_DM_SAZF_DDSBPFMCPSTT WHERE BAS_DT LIKE TO_CHAR(ADD_MONTHS(#{date},-2),'YYYYMM')||'%')
		UNION
		SELECT BAS_DT, KDTP_DCD, KDTP_DS_NM, 
		KDTP_DETL_DCD, KDTP_DETL_DS_NM, GOL_SUM_PREM, TMM_SUM_FSTU_PREM, 
		CASE WHEN GOL_SUM_PREM > 0 
			THEN ROUND((TMM_SUM_FSTU_PREM/GOL_SUM_PREM)*100,1)
			ELSE 0
		END AS SUCCE_RATE,
		CASE WHEN BFYY_CMPR_TMM_SUM_PREM > 0 
			THEN ROUND((TMM_SUM_FSTU_PREM-BFYY_CMPR_TMM_SUM_PREM)/BFYY_CMPR_TMM_SUM_PREM*100,1)
			ELSE 0
		END AS UP_RATE, BFYY_CMPR_TMM_SUM_PREM, TMM_SCRT_PREM,
		CASE WHEN TMM_SUM_FSTU_PREM > 0 
			THEN ROUND((TMM_SCRT_PREM/TMM_SUM_FSTU_PREM*100),1)
			ELSE 0
		END AS SAVE_RATE FROM TB_MP_DM_SAZF_DDSBPFMCPSTT 
		WHERE BAS_DT = (SELECT MAX(BAS_DT) FROM TB_MP_DM_SAZF_DDSBPFMCPSTT WHERE BAS_DT LIKE TO_CHAR(ADD_MONTHS(#{date},-3),'YYYYMM')||'%')
		UNION
		SELECT BAS_DT, KDTP_DCD, KDTP_DS_NM, 
		KDTP_DETL_DCD, KDTP_DETL_DS_NM, GOL_SUM_PREM, TMM_SUM_FSTU_PREM, 
		CASE WHEN GOL_SUM_PREM > 0 
			THEN ROUND((TMM_SUM_FSTU_PREM/GOL_SUM_PREM)*100,1)
			ELSE 0
		END AS SUCCE_RATE,
		CASE WHEN BFYY_CMPR_TMM_SUM_PREM > 0 
			THEN ROUND((TMM_SUM_FSTU_PREM-BFYY_CMPR_TMM_SUM_PREM)/BFYY_CMPR_TMM_SUM_PREM*100,1)
			ELSE 0
		END AS UP_RATE, BFYY_CMPR_TMM_SUM_PREM, TMM_SCRT_PREM,
		CASE WHEN TMM_SUM_FSTU_PREM > 0 
			THEN ROUND((TMM_SCRT_PREM/TMM_SUM_FSTU_PREM*100),1)
			ELSE 0
		END AS SAVE_RATE FROM TB_MP_DM_SAZF_DDSBPFMCPSTT 
		WHERE BAS_DT = (SELECT MAX(BAS_DT) FROM TB_MP_DM_SAZF_DDSBPFMCPSTT WHERE BAS_DT LIKE TO_CHAR(ADD_MONTHS(#{date},-4),'YYYYMM')||'%')
		UNION
		SELECT BAS_DT, KDTP_DCD, KDTP_DS_NM, 
		KDTP_DETL_DCD, KDTP_DETL_DS_NM, GOL_SUM_PREM, TMM_SUM_FSTU_PREM, 
		CASE WHEN GOL_SUM_PREM > 0 
			THEN ROUND((TMM_SUM_FSTU_PREM/GOL_SUM_PREM)*100,1)
			ELSE 0
		END AS SUCCE_RATE,
		CASE WHEN BFYY_CMPR_TMM_SUM_PREM > 0 
			THEN ROUND((TMM_SUM_FSTU_PREM-BFYY_CMPR_TMM_SUM_PREM)/BFYY_CMPR_TMM_SUM_PREM*100,1)
			ELSE 0
		END AS UP_RATE, BFYY_CMPR_TMM_SUM_PREM, TMM_SCRT_PREM,
		CASE WHEN TMM_SUM_FSTU_PREM > 0 
			THEN ROUND((TMM_SCRT_PREM/TMM_SUM_FSTU_PREM*100),1)
			ELSE 0
		END AS SAVE_RATE FROM TB_MP_DM_SAZF_DDSBPFMCPSTT 
		WHERE BAS_DT = (SELECT MAX(BAS_DT) FROM TB_MP_DM_SAZF_DDSBPFMCPSTT WHERE BAS_DT LIKE TO_CHAR(ADD_MONTHS(#{date},-5),'YYYYMM')||'%')
		UNION
		SELECT BAS_DT, KDTP_DCD, KDTP_DS_NM, 
		KDTP_DETL_DCD, KDTP_DETL_DS_NM, GOL_SUM_PREM, TMM_SUM_FSTU_PREM, 
		CASE WHEN GOL_SUM_PREM > 0 
			THEN ROUND((TMM_SUM_FSTU_PREM/GOL_SUM_PREM)*100,1)
			ELSE 0
		END AS SUCCE_RATE,
		CASE WHEN BFYY_CMPR_TMM_SUM_PREM > 0 
			THEN ROUND((TMM_SUM_FSTU_PREM-BFYY_CMPR_TMM_SUM_PREM)/BFYY_CMPR_TMM_SUM_PREM*100,1)
			ELSE 0
		END AS UP_RATE, BFYY_CMPR_TMM_SUM_PREM, TMM_SCRT_PREM,
		CASE WHEN TMM_SUM_FSTU_PREM > 0 
			THEN ROUND((TMM_SCRT_PREM/TMM_SUM_FSTU_PREM*100),1)
			ELSE 0
		END AS SAVE_RATE FROM TB_MP_DM_SAZF_DDSBPFMCPSTT 
		WHERE BAS_DT = (SELECT MAX(BAS_DT) FROM TB_MP_DM_SAZF_DDSBPFMCPSTT WHERE BAS_DT LIKE TO_CHAR(ADD_MONTHS(#{date},-6),'YYYYMM')||'%')
		UNION
		SELECT BAS_DT, KDTP_DCD, KDTP_DS_NM, 
		KDTP_DETL_DCD, KDTP_DETL_DS_NM, GOL_SUM_PREM, TMM_SUM_FSTU_PREM, 
		CASE WHEN GOL_SUM_PREM > 0 
			THEN ROUND((TMM_SUM_FSTU_PREM/GOL_SUM_PREM)*100,1)
			ELSE 0
		END AS SUCCE_RATE,
		CASE WHEN BFYY_CMPR_TMM_SUM_PREM > 0 
			THEN ROUND((TMM_SUM_FSTU_PREM-BFYY_CMPR_TMM_SUM_PREM)/BFYY_CMPR_TMM_SUM_PREM*100,1)
			ELSE 0
		END AS UP_RATE, BFYY_CMPR_TMM_SUM_PREM, TMM_SCRT_PREM,
		CASE WHEN TMM_SUM_FSTU_PREM > 0 
			THEN ROUND((TMM_SCRT_PREM/TMM_SUM_FSTU_PREM*100),1)
			ELSE 0
		END AS SAVE_RATE FROM TB_MP_DM_SAZF_DDSBPFMCPSTT 
		WHERE BAS_DT = (SELECT MAX(BAS_DT) FROM TB_MP_DM_SAZF_DDSBPFMCPSTT WHERE BAS_DT LIKE TO_CHAR(ADD_MONTHS(#{date},-7),'YYYYMM')||'%')
		UNION
		SELECT BAS_DT, KDTP_DCD, KDTP_DS_NM, 
		KDTP_DETL_DCD, KDTP_DETL_DS_NM, GOL_SUM_PREM, TMM_SUM_FSTU_PREM, 
		CASE WHEN GOL_SUM_PREM > 0 
			THEN ROUND((TMM_SUM_FSTU_PREM/GOL_SUM_PREM)*100,1)
			ELSE 0
		END AS SUCCE_RATE,
		CASE WHEN BFYY_CMPR_TMM_SUM_PREM > 0 
			THEN ROUND((TMM_SUM_FSTU_PREM-BFYY_CMPR_TMM_SUM_PREM)/BFYY_CMPR_TMM_SUM_PREM*100,1)
			ELSE 0
		END AS UP_RATE, BFYY_CMPR_TMM_SUM_PREM, TMM_SCRT_PREM,
		CASE WHEN TMM_SUM_FSTU_PREM > 0 
			THEN ROUND((TMM_SCRT_PREM/TMM_SUM_FSTU_PREM*100),1)
			ELSE 0
		END AS SAVE_RATE FROM TB_MP_DM_SAZF_DDSBPFMCPSTT 
		WHERE BAS_DT = (SELECT MAX(BAS_DT) FROM TB_MP_DM_SAZF_DDSBPFMCPSTT WHERE BAS_DT LIKE TO_CHAR(ADD_MONTHS(#{date},-8),'YYYYMM')||'%')
		UNION
		SELECT BAS_DT, KDTP_DCD, KDTP_DS_NM, 
		KDTP_DETL_DCD, KDTP_DETL_DS_NM, GOL_SUM_PREM, TMM_SUM_FSTU_PREM, 
		CASE WHEN GOL_SUM_PREM > 0 
			THEN ROUND((TMM_SUM_FSTU_PREM/GOL_SUM_PREM)*100,1)
			ELSE 0
		END AS SUCCE_RATE,
		CASE WHEN BFYY_CMPR_TMM_SUM_PREM > 0 
			THEN ROUND((TMM_SUM_FSTU_PREM-BFYY_CMPR_TMM_SUM_PREM)/BFYY_CMPR_TMM_SUM_PREM*100,1)
			ELSE 0
		END AS UP_RATE, BFYY_CMPR_TMM_SUM_PREM, TMM_SCRT_PREM,
		CASE WHEN TMM_SUM_FSTU_PREM > 0 
			THEN ROUND((TMM_SCRT_PREM/TMM_SUM_FSTU_PREM*100),1)
			ELSE 0
		END AS SAVE_RATE FROM TB_MP_DM_SAZF_DDSBPFMCPSTT 
		WHERE BAS_DT = (SELECT MAX(BAS_DT) FROM TB_MP_DM_SAZF_DDSBPFMCPSTT WHERE BAS_DT LIKE TO_CHAR(ADD_MONTHS(#{date},-9),'YYYYMM')||'%')
		UNION
		SELECT BAS_DT, KDTP_DCD, KDTP_DS_NM, 
		KDTP_DETL_DCD, KDTP_DETL_DS_NM, GOL_SUM_PREM, TMM_SUM_FSTU_PREM, 
		CASE WHEN GOL_SUM_PREM > 0 
			THEN ROUND((TMM_SUM_FSTU_PREM/GOL_SUM_PREM)*100,1)
			ELSE 0
		END AS SUCCE_RATE,
		CASE WHEN BFYY_CMPR_TMM_SUM_PREM > 0 
			THEN ROUND((TMM_SUM_FSTU_PREM-BFYY_CMPR_TMM_SUM_PREM)/BFYY_CMPR_TMM_SUM_PREM*100,1)
			ELSE 0
		END AS UP_RATE, BFYY_CMPR_TMM_SUM_PREM, TMM_SCRT_PREM,
		CASE WHEN TMM_SUM_FSTU_PREM > 0 
			THEN ROUND((TMM_SCRT_PREM/TMM_SUM_FSTU_PREM*100),1)
			ELSE 0
		END AS SAVE_RATE FROM TB_MP_DM_SAZF_DDSBPFMCPSTT 
		WHERE BAS_DT = (SELECT MAX(BAS_DT) FROM TB_MP_DM_SAZF_DDSBPFMCPSTT WHERE BAS_DT LIKE TO_CHAR(ADD_MONTHS(#{date},-10),'YYYYMM')||'%')
		UNION
		SELECT BAS_DT, KDTP_DCD, KDTP_DS_NM, 
		KDTP_DETL_DCD, KDTP_DETL_DS_NM, GOL_SUM_PREM, TMM_SUM_FSTU_PREM, 
		CASE WHEN GOL_SUM_PREM > 0 
			THEN ROUND((TMM_SUM_FSTU_PREM/GOL_SUM_PREM)*100,1)
			ELSE 0
		END AS SUCCE_RATE,
		CASE WHEN BFYY_CMPR_TMM_SUM_PREM > 0 
			THEN ROUND((TMM_SUM_FSTU_PREM-BFYY_CMPR_TMM_SUM_PREM)/BFYY_CMPR_TMM_SUM_PREM*100,1)
			ELSE 0
		END AS UP_RATE, BFYY_CMPR_TMM_SUM_PREM, TMM_SCRT_PREM,
		CASE WHEN TMM_SUM_FSTU_PREM > 0 
			THEN ROUND((TMM_SCRT_PREM/TMM_SUM_FSTU_PREM*100),1)
			ELSE 0
		END AS SAVE_RATE FROM TB_MP_DM_SAZF_DDSBPFMCPSTT 
		WHERE BAS_DT = (SELECT MAX(BAS_DT) FROM TB_MP_DM_SAZF_DDSBPFMCPSTT WHERE BAS_DT LIKE TO_CHAR(ADD_MONTHS(#{date},-11),'YYYYMM')||'%')) 
		ORDER BY BAS_DT, KDTP_DCD, KDTP_DETL_DCD
		]]>
	</select>
	
	<select id="kr.co.i2talk.cms.listDayMonthlyInitial"
		parameterType="HashMap"
		resultType="java.util.LinkedHashMap">
		/* kr.co.i2talk.cms.listDayMonthlyInitial */
		<![CDATA[
		SELECT 
			BAS_DT, KDTP_DCD, KDTP_DS_NM, KDTP_DETL_DCD, KDTP_DETL_DS_NM,
			NNL_GOL_MM_CONV_FTM_PREM, TMM_MM_CONV_FTM_PREM, TYR_MM_CONV_FTM_PREM, BFYY_MM_CONV_FTM_PREM
		FROM TB_MP_DM_SAZF_DDSBOVRLPFMC
		WHERE BAS_DT BETWEEN TO_CHAR(TO_DATE(#{date})-15,'YYYYMMDD') AND TO_CHAR(TO_DATE(#{date})-1,'YYYYMMDD')
		]]>
	</select>
	
</mapper>
