통지 리스트 쿼리 변경,........

dev
박성영 2 months ago
parent b94a38b359
commit 1b6df6f304

@ -6,175 +6,199 @@
<!-- 이행정보 조회 --> <!-- 이행정보 조회 -->
<select id="selectImpltInfoList" parameterType="NotiImpltInfoVO" resultType="NotiImpltInfoVO"> <select id="selectImpltInfoList" parameterType="NotiImpltInfoVO" resultType="NotiImpltInfoVO">
SELECT /* NotiMapper.selectImpltInfoList : 이행정보 목록 조회 (단속년도/번호별 최대 순번만) */
ii.IMPLT_INFO_ID, SELECT
ii.SGG_CD, IMPLT_INFO_ID,
ii.CRDN_YR, SGG_CD,
ii.CRDN_NO, CRDN_YR,
ii.IMPLT_TASK_SE_CD, CRDN_NO,
ii.IMPLT_BGNG_YMD, IMPLT_TASK_SE_CD,
ii.IMPLT_END_YMD, IMPLT_BGNG_YMD,
ii.REG_DT, IMPLT_END_YMD,
ii.RGTR, REG_DT,
ii.MDFCN_DT, RGTR,
ii.MDFR, MDFCN_DT,
ii.DEL_YN, MDFR,
ii.DEL_DT, DEL_YN,
ii.DLTR, DEL_DT,
-- 단속 정보 (조인) DLTR,
c.DSCL_YMD, DSCL_YMD,
c.EXMNR, EXMNR,
c.RGN_SE_CD, RGN_SE_CD,
rgnSeCd.CD_NM as RGN_SE_CD_NM, RGN_SE_CD_NM,
p.STDG_EMD_CD, STDG_EMD_CD,
stdgEmdCd.CD_NM as STDG_EMD_CD_NM, STDG_EMD_CD_NM,
p.LOTNO_ADDR, LOTNO_ADDR,
p.LOTNO_MNO, LOTNO_MNO,
p.LOTNO_SNO, LOTNO_SNO,
p.LOTNO_WHOL_ADDR, LOTNO_WHOL_ADDR,
impltTaskSe.CD_NM as IMPLT_TASK_SE_CD_NM, IMPLT_TASK_SE_CD_NM,
ru.USER_NM AS RGTR_NM, /* 등록자 명 */ RGTR_NM,
mu.USER_NM AS MDFR_NM, /* 수정자 명 */ MDFR_NM,
/* 중요로직: GROUP_CONCAT을 이용하여 단속건별 행위유형, 소유자 정보 집계 */ ACT_TYPE_CD_NMS,
(SELECT GROUP_CONCAT(DISTINCT act2.VLTN_BDST SEPARATOR ', ') OWNR_IDS,
FROM tb_act_info ai2 OWNR_FLNMS
LEFT JOIN tb_act_type act2 ON act2.ACT_TYPE_CD = ai2.ACT_TYPE_CD FROM (
WHERE ai2.CRDN_YR = c.CRDN_YR
AND ai2.CRDN_NO = c.CRDN_NO
AND ai2.DEL_YN = 'N') AS ACT_TYPE_CD_NMS, /* 행위유형명 */
(SELECT GROUP_CONCAT(DISTINCT o2.OWNR_ID SEPARATOR ', ')
FROM tb_ownr_info oi2
LEFT JOIN tb_ownr o2 ON o2.OWNR_ID = oi2.OWNR_ID AND o2.DEL_YN = 'N'
WHERE oi2.CRDN_YR = c.CRDN_YR
AND oi2.CRDN_NO = c.CRDN_NO
AND oi2.DEL_YN = 'N') AS OWNR_IDS, /* 소유자ID */
(SELECT GROUP_CONCAT(DISTINCT o2.FLNM SEPARATOR ', ')
FROM tb_ownr_info oi2
LEFT JOIN tb_ownr o2 ON o2.OWNR_ID = oi2.OWNR_ID AND o2.DEL_YN = 'N'
WHERE oi2.CRDN_YR = c.CRDN_YR
AND oi2.CRDN_NO = c.CRDN_NO
AND oi2.DEL_YN = 'N') AS OWNR_FLNMS /* 소유자명 */
FROM TB_IMPLT_INFO ii
INNER JOIN tb_crdn c ON ii.CRDN_YR = c.CRDN_YR AND ii.CRDN_NO = c.CRDN_NO AND c.DEL_YN = 'N'
INNER JOIN tb_pstn_info p ON p.CRDN_YR = c.CRDN_YR AND p.CRDN_NO = c.CRDN_NO AND p.DEL_YN = 'N'
/* 중요로직: 조치처리상태 확인을 위한 행위정보 조인 - 미조치 건만 조회 */
INNER JOIN (
SELECT SELECT
CRDN_YR, ii.IMPLT_INFO_ID,
CRDN_NO, ii.SGG_CD,
COUNT(1) as ACT_ALL_CNT, ii.CRDN_YR,
SUM(CASE WHEN ACTN_PRCS_STTS_CD = '3' THEN 1 ELSE 0 END) as ACT_COMPLT_CNT ii.CRDN_NO,
FROM tb_act_info ii.IMPLT_TASK_SE_CD,
WHERE DEL_YN = 'N' ii.IMPLT_BGNG_YMD,
GROUP BY CRDN_YR, CRDN_NO ii.IMPLT_END_YMD,
) act_cnt ON act_cnt.CRDN_YR = c.CRDN_YR AND act_cnt.CRDN_NO = c.CRDN_NO ii.REG_DT,
-- 코드성 데이터 조인 ii.RGTR,
LEFT JOIN tb_cd_detail impltTaskSe ON impltTaskSe.CD_GROUP_ID = 'IMPLT_TASK_SE_CD' AND impltTaskSe.CD_ID = ii.IMPLT_TASK_SE_CD ii.MDFCN_DT,
LEFT JOIN tb_cd_detail stdgEmdCd ON stdgEmdCd.CD_GROUP_ID = 'STDG_EMD_CD' AND stdgEmdCd.CD_ID = p.STDG_EMD_CD ii.MDFR,
LEFT JOIN tb_cd_detail rgnSeCd ON rgnSeCd.CD_GROUP_ID = 'RGN_SE_CD' AND rgnSeCd.CD_ID = c.RGN_SE_CD ii.DEL_YN,
LEFT JOIN tb_user ru ON ii.RGTR = ru.USER_ID ii.DEL_DT,
LEFT JOIN tb_user mu ON ii.MDFR = mu.USER_ID ii.DLTR,
WHERE ii.CRDN_YR = #{schCrdnYr} c.DSCL_YMD,
AND ii.DEL_YN = 'N' c.EXMNR,
AND ii.IMPLT_BGNG_YMD BETWEEN #{schImpltBgngYmd1} AND #{schImpltBgngYmd2} c.RGN_SE_CD,
/* 중요로직: 조치처리상태가 미조치(1)인 건만 조회 - 행위정보가 있고 조치완료되지 않은 경우 */ rgnSeCd.CD_NM as RGN_SE_CD_NM,
AND (IFNULL(act_cnt.ACT_ALL_CNT, 0) != 0 AND IFNULL(act_cnt.ACT_ALL_CNT, 0) != IFNULL(act_cnt.ACT_COMPLT_CNT, 0)) p.STDG_EMD_CD,
<if test='schImpltTaskSeCd != null and schImpltTaskSeCd != ""'> stdgEmdCd.CD_NM as STDG_EMD_CD_NM,
AND ii.IMPLT_TASK_SE_CD = #{schImpltTaskSeCd} p.LOTNO_ADDR,
</if> p.LOTNO_MNO,
<if test='schImpltTaskSeCd == null or schImpltTaskSeCd == ""'> p.LOTNO_SNO,
AND ii.IMPLT_TASK_SE_CD IN ('1', '2', '3') p.LOTNO_WHOL_ADDR,
</if> impltTaskSe.CD_NM as IMPLT_TASK_SE_CD_NM,
<if test='schStdgEmdCd != null and schStdgEmdCd != ""'> ru.USER_NM AS RGTR_NM,
AND p.STDG_EMD_CD = #{schStdgEmdCd} mu.USER_NM AS MDFR_NM,
</if> (SELECT GROUP_CONCAT(DISTINCT act2.VLTN_BDST SEPARATOR ', ')
<if test='schZip != null and schZip != ""'> FROM tb_act_info ai2
AND p.ZIP LIKE CONCAT('%', #{schZip}, '%') LEFT JOIN tb_act_type act2 ON act2.ACT_TYPE_CD = ai2.ACT_TYPE_CD
</if> WHERE ai2.CRDN_YR = c.CRDN_YR AND ai2.CRDN_NO = c.CRDN_NO AND ai2.DEL_YN = 'N') AS ACT_TYPE_CD_NMS,
<if test='schLotnoAddr != null and schLotnoAddr != ""'> (SELECT GROUP_CONCAT(DISTINCT o2.OWNR_ID SEPARATOR ', ')
AND p.LOTNO_ADDR LIKE CONCAT('%', #{schLotnoAddr}, '%') FROM tb_ownr_info oi2
</if> LEFT JOIN tb_ownr o2 ON o2.OWNR_ID = oi2.OWNR_ID AND o2.DEL_YN = 'N'
<if test='schDtlAddr != null and schDtlAddr != ""'> WHERE oi2.CRDN_YR = c.CRDN_YR AND oi2.CRDN_NO = c.CRDN_NO AND oi2.DEL_YN = 'N') AS OWNR_IDS,
AND p.DTL_ADDR LIKE CONCAT('%', #{schDtlAddr}, '%') (SELECT GROUP_CONCAT(DISTINCT o2.FLNM SEPARATOR ', ')
</if> FROM tb_ownr_info oi2
<if test='schLotnoMno != null and schLotnoMno != ""'> LEFT JOIN tb_ownr o2 ON o2.OWNR_ID = oi2.OWNR_ID AND o2.DEL_YN = 'N'
AND p.LOTNO_MNO = #{schLotnoMno} WHERE oi2.CRDN_YR = c.CRDN_YR AND oi2.CRDN_NO = c.CRDN_NO AND oi2.DEL_YN = 'N') AS OWNR_FLNMS,
</if> /* 중요로직: 단속년도/번호별로 순번이 큰 순서대로 번호 부여 (1이 최대 순번) */
<if test='schLotnoSno != null and schLotnoSno != ""'> ROW_NUMBER() OVER (PARTITION BY ii.CRDN_YR, ii.CRDN_NO ORDER BY IFNULL(impltTaskSe.SORT_ORDR, 0) DESC) as rn
AND p.LOTNO_SNO = #{schLotnoSno} FROM TB_IMPLT_INFO ii
</if> INNER JOIN tb_crdn c ON ii.CRDN_YR = c.CRDN_YR AND ii.CRDN_NO = c.CRDN_NO AND c.DEL_YN = 'N'
INNER JOIN tb_pstn_info p ON p.CRDN_YR = c.CRDN_YR AND p.CRDN_NO = c.CRDN_NO AND p.DEL_YN = 'N'
INNER JOIN (
SELECT CRDN_YR, CRDN_NO, COUNT(1) as ACT_ALL_CNT,
SUM(CASE WHEN ACTN_PRCS_STTS_CD = '3' THEN 1 ELSE 0 END) as ACT_COMPLT_CNT
FROM tb_act_info
WHERE DEL_YN = 'N'
GROUP BY CRDN_YR, CRDN_NO
) act_cnt ON act_cnt.CRDN_YR = c.CRDN_YR AND act_cnt.CRDN_NO = c.CRDN_NO
LEFT JOIN tb_cd_detail impltTaskSe ON impltTaskSe.CD_GROUP_ID = 'IMPLT_TASK_SE_CD' AND impltTaskSe.CD_ID = ii.IMPLT_TASK_SE_CD
LEFT JOIN tb_cd_detail stdgEmdCd ON stdgEmdCd.CD_GROUP_ID = 'STDG_EMD_CD' AND stdgEmdCd.CD_ID = p.STDG_EMD_CD
LEFT JOIN tb_cd_detail rgnSeCd ON rgnSeCd.CD_GROUP_ID = 'RGN_SE_CD' AND rgnSeCd.CD_ID = c.RGN_SE_CD
LEFT JOIN tb_user ru ON ii.RGTR = ru.USER_ID
LEFT JOIN tb_user mu ON ii.MDFR = mu.USER_ID
WHERE ii.CRDN_YR = #{schCrdnYr}
AND ii.DEL_YN = 'N'
AND ii.IMPLT_BGNG_YMD BETWEEN #{schImpltBgngYmd1} AND #{schImpltBgngYmd2}
AND (IFNULL(act_cnt.ACT_ALL_CNT, 0) != 0 AND IFNULL(act_cnt.ACT_ALL_CNT, 0) != IFNULL(act_cnt.ACT_COMPLT_CNT, 0))
<if test='schImpltTaskSeCd != null and schImpltTaskSeCd != ""'>
AND ii.IMPLT_TASK_SE_CD = #{schImpltTaskSeCd}
</if>
<if test='schImpltTaskSeCd == null or schImpltTaskSeCd == ""'>
AND ii.IMPLT_TASK_SE_CD IN ('1', '2', '3')
</if>
<if test='schStdgEmdCd != null and schStdgEmdCd != ""'>
AND p.STDG_EMD_CD = #{schStdgEmdCd}
</if>
<if test='schZip != null and schZip != ""'>
AND p.ZIP LIKE CONCAT('%', #{schZip}, '%')
</if>
<if test='schLotnoAddr != null and schLotnoAddr != ""'>
AND p.LOTNO_ADDR LIKE CONCAT('%', #{schLotnoAddr}, '%')
</if>
<if test='schDtlAddr != null and schDtlAddr != ""'>
AND p.DTL_ADDR LIKE CONCAT('%', #{schDtlAddr}, '%')
</if>
<if test='schLotnoMno != null and schLotnoMno != ""'>
AND p.LOTNO_MNO = #{schLotnoMno}
</if>
<if test='schLotnoSno != null and schLotnoSno != ""'>
AND p.LOTNO_SNO = #{schLotnoSno}
</if>
) ranked
WHERE rn = 1
<choose> <choose>
<!-- system 메뉴 패턴 준수: sortAscending(Boolean) 사용 -->
<!-- 중요로직: 화면 sortColumn은 컬럼 name 기준(crdnNo)으로 전달되므로 화이트리스트 매핑 적용 -->
<when test="sortColumn != null and (sortColumn == 'crdnNo' or sortColumn == 'CRDN_NO') and sortAscending != null and sortAscending == true"> <when test="sortColumn != null and (sortColumn == 'crdnNo' or sortColumn == 'CRDN_NO') and sortAscending != null and sortAscending == true">
ORDER BY ii.CRDN_NO ASC ORDER BY CRDN_NO ASC
</when> </when>
<when test="sortColumn != null and (sortColumn == 'crdnNo' or sortColumn == 'CRDN_NO') and sortAscending != null and sortAscending == false"> <when test="sortColumn != null and (sortColumn == 'crdnNo' or sortColumn == 'CRDN_NO') and sortAscending != null and sortAscending == false">
ORDER BY ii.CRDN_NO DESC ORDER BY CRDN_NO DESC
</when> </when>
<otherwise> <otherwise>
ORDER BY ii.CRDN_NO DESC ORDER BY CRDN_NO DESC
</otherwise> </otherwise>
</choose> </choose>
<if test='pagingYn != null and pagingYn == "Y"'> <if test='pagingYn != null and pagingYn == "Y"'>
LIMIT #{startIndex}, #{perPage} LIMIT #{startIndex}, #{perPage}
</if> </if>
</select> </select>
<!-- 이행정보 조회 --> <!-- 이행정보 조회 총 개수 -->
<select id="selectImpltInfoListTotalCount" parameterType="NotiImpltInfoVO" resultType="int"> <select id="selectImpltInfoListTotalCount" parameterType="NotiImpltInfoVO" resultType="int">
SELECT Count(*) /* NotiMapper.selectImpltInfoListTotalCount : 이행정보 목록 총 개수 조회 (단속년도/번호별 최대 순번만) */
FROM TB_IMPLT_INFO ii SELECT COUNT(*)
INNER JOIN tb_crdn c ON ii.CRDN_YR = c.CRDN_YR AND ii.CRDN_NO = c.CRDN_NO AND c.DEL_YN = 'N' FROM (
INNER JOIN tb_pstn_info p ON p.CRDN_YR = c.CRDN_YR AND p.CRDN_NO = c.CRDN_NO AND p.DEL_YN = 'N' SELECT ii.IMPLT_INFO_ID,
/* 중요로직: 조치처리상태 확인을 위한 행위정보 조인 - 미조치 건만 조회 */ ROW_NUMBER() OVER (PARTITION BY ii.CRDN_YR, ii.CRDN_NO ORDER BY IFNULL(impltTaskSe.SORT_ORDR, 0) DESC) as rn
INNER JOIN ( FROM TB_IMPLT_INFO ii
SELECT INNER JOIN tb_crdn c ON ii.CRDN_YR = c.CRDN_YR AND ii.CRDN_NO = c.CRDN_NO AND c.DEL_YN = 'N'
CRDN_YR, INNER JOIN tb_pstn_info p ON p.CRDN_YR = c.CRDN_YR AND p.CRDN_NO = c.CRDN_NO AND p.DEL_YN = 'N'
CRDN_NO, INNER JOIN (
COUNT(1) as ACT_ALL_CNT, SELECT CRDN_YR, CRDN_NO, COUNT(1) as ACT_ALL_CNT,
SUM(CASE WHEN ACTN_PRCS_STTS_CD = '3' THEN 1 ELSE 0 END) as ACT_COMPLT_CNT SUM(CASE WHEN ACTN_PRCS_STTS_CD = '3' THEN 1 ELSE 0 END) as ACT_COMPLT_CNT
FROM tb_act_info FROM tb_act_info
WHERE DEL_YN = 'N' WHERE DEL_YN = 'N'
GROUP BY CRDN_YR, CRDN_NO GROUP BY CRDN_YR, CRDN_NO
) act_cnt ON act_cnt.CRDN_YR = c.CRDN_YR AND act_cnt.CRDN_NO = c.CRDN_NO ) act_cnt ON act_cnt.CRDN_YR = c.CRDN_YR AND act_cnt.CRDN_NO = c.CRDN_NO
WHERE ii.CRDN_YR = #{schCrdnYr} LEFT JOIN tb_cd_detail impltTaskSe ON impltTaskSe.CD_GROUP_ID = 'IMPLT_TASK_SE_CD' AND impltTaskSe.CD_ID = ii.IMPLT_TASK_SE_CD
AND ii.DEL_YN = 'N' WHERE ii.CRDN_YR = #{schCrdnYr}
AND ii.IMPLT_BGNG_YMD BETWEEN #{schImpltBgngYmd1} AND #{schImpltBgngYmd2} AND ii.DEL_YN = 'N'
/* 중요로직: 조치처리상태가 미조치(1)인 건만 조회 - 행위정보가 있고 조치완료되지 않은 경우 */ AND ii.IMPLT_BGNG_YMD BETWEEN #{schImpltBgngYmd1} AND #{schImpltBgngYmd2}
AND (IFNULL(act_cnt.ACT_ALL_CNT, 0) != 0 AND IFNULL(act_cnt.ACT_ALL_CNT, 0) != IFNULL(act_cnt.ACT_COMPLT_CNT, 0)) AND (IFNULL(act_cnt.ACT_ALL_CNT, 0) != 0 AND IFNULL(act_cnt.ACT_ALL_CNT, 0) != IFNULL(act_cnt.ACT_COMPLT_CNT, 0))
<if test='schImpltTaskSeCd != null and schImpltTaskSeCd != ""'> <if test='schImpltTaskSeCd != null and schImpltTaskSeCd != ""'>
AND ii.IMPLT_TASK_SE_CD = #{schImpltTaskSeCd} AND ii.IMPLT_TASK_SE_CD = #{schImpltTaskSeCd}
</if> </if>
<if test='schImpltTaskSeCd == null or schImpltTaskSeCd == ""'> <if test='schImpltTaskSeCd == null or schImpltTaskSeCd == ""'>
AND ii.IMPLT_TASK_SE_CD IN ('1', '2', '3') AND ii.IMPLT_TASK_SE_CD IN ('1', '2', '3')
</if> </if>
<if test='schStdgEmdCd != null and schStdgEmdCd != ""'> <if test='schStdgEmdCd != null and schStdgEmdCd != ""'>
AND p.STDG_EMD_CD = #{schStdgEmdCd} AND p.STDG_EMD_CD = #{schStdgEmdCd}
</if> </if>
<if test='schZip != null and schZip != ""'> <if test='schZip != null and schZip != ""'>
AND p.ZIP LIKE CONCAT('%', #{schZip}, '%') AND p.ZIP LIKE CONCAT('%', #{schZip}, '%')
</if> </if>
<if test='schLotnoAddr != null and schLotnoAddr != ""'> <if test='schLotnoAddr != null and schLotnoAddr != ""'>
AND p.LOTNO_ADDR LIKE CONCAT('%', #{schLotnoAddr}, '%') AND p.LOTNO_ADDR LIKE CONCAT('%', #{schLotnoAddr}, '%')
</if> </if>
<if test='schDtlAddr != null and schDtlAddr != ""'> <if test='schDtlAddr != null and schDtlAddr != ""'>
AND p.DTL_ADDR LIKE CONCAT('%', #{schDtlAddr}, '%') AND p.DTL_ADDR LIKE CONCAT('%', #{schDtlAddr}, '%')
</if> </if>
<if test='schLotnoMno != null and schLotnoMno != ""'> <if test='schLotnoMno != null and schLotnoMno != ""'>
AND p.LOTNO_MNO = #{schLotnoMno} AND p.LOTNO_MNO = #{schLotnoMno}
</if> </if>
<if test='schLotnoSno != null and schLotnoSno != ""'> <if test='schLotnoSno != null and schLotnoSno != ""'>
AND p.LOTNO_SNO = #{schLotnoSno} AND p.LOTNO_SNO = #{schLotnoSno}
</if> </if>
) ranked
WHERE rn = 1
</select> </select>
<!-- ==================== 이행 대상자 정보(TB_IMPLT_TRPR_INFO) 관련 쿼리 ==================== --> <!-- ==================== 이행 대상자 정보(TB_IMPLT_TRPR_INFO) 관련 쿼리 ==================== -->
<!-- 이행 대상자 정보 목록 조회 --> <!-- 이행 대상자 정보 목록 조회 -->
<select id="selectImpltTrprInfoList" parameterType="NotiImpltTrprInfoVO" <select id="selectImpltTrprInfoList" parameterType="NotiImpltTrprInfoVO"
resultType="NotiImpltTrprInfoVO"> resultType="NotiImpltTrprInfoVO">
/* NotiMapper.selectImpltTrprInfoList : 이행 대상자 정보 목록 조회 */
SELECT SELECT
MIN(iti.IMPLT_TRPR_INFO_ID) AS IMPLT_TRPR_INFO_ID, MIN(iti.IMPLT_TRPR_INFO_ID) AS IMPLT_TRPR_INFO_ID,
iti.SGG_CD, iti.SGG_CD,
@ -185,22 +209,19 @@
iti.IMPLT_TRPR_ZIP, iti.IMPLT_TRPR_ZIP,
iti.IMPLT_TRPR_SE_CD, iti.IMPLT_TRPR_SE_CD,
MIN(iti.OWNR_ACTR_INFO_ID) as OWNR_ACTR_INFO_ID, MIN(iti.OWNR_ACTR_INFO_ID) as OWNR_ACTR_INFO_ID,
-- 코드성 데이터 조인 (코드명)
impltTrprSe.CD_NM as IMPLT_TRPR_SE_CD_NM, impltTrprSe.CD_NM as IMPLT_TRPR_SE_CD_NM,
sggCd.CD_NM as SGG_CD_NM sggCd.CD_NM as SGG_CD_NM
FROM TB_IMPLT_TRPR_INFO iti FROM TB_IMPLT_TRPR_INFO iti
/* 중요로직: 메인 데이터 삭제 시 이행대상자가 조회되지 않도록 INNER JOIN 적용 */
INNER JOIN TB_IMPLT_INFO ii ON iti.IMPLT_INFO_ID = ii.IMPLT_INFO_ID AND ii.DEL_YN = 'N' INNER JOIN TB_IMPLT_INFO ii ON iti.IMPLT_INFO_ID = ii.IMPLT_INFO_ID AND ii.DEL_YN = 'N'
INNER JOIN tb_crdn c ON ii.CRDN_YR = c.CRDN_YR AND ii.CRDN_NO = c.CRDN_NO AND c.DEL_YN = 'N' INNER JOIN tb_crdn c ON ii.CRDN_YR = c.CRDN_YR AND ii.CRDN_NO = c.CRDN_NO AND c.DEL_YN = 'N'
INNER JOIN tb_pstn_info p ON p.CRDN_YR = c.CRDN_YR AND p.CRDN_NO = c.CRDN_NO AND p.DEL_YN = 'N' INNER JOIN tb_pstn_info p ON p.CRDN_YR = c.CRDN_YR AND p.CRDN_NO = c.CRDN_NO AND p.DEL_YN = 'N'
INNER JOIN tb_act_info act ON act.CRDN_YR = c.CRDN_YR AND act.CRDN_NO = c.CRDN_NO AND act.DEL_YN = 'N' AND act.ACTN_PRCS_STTS_CD != '3' INNER JOIN tb_act_info act ON act.CRDN_YR = c.CRDN_YR AND act.CRDN_NO = c.CRDN_NO AND act.DEL_YN = 'N' AND act.ACTN_PRCS_STTS_CD != '3'
-- 코드성 데이터 조인
LEFT JOIN tb_cd_detail impltTrprSe ON impltTrprSe.CD_GROUP_ID = 'IMPLT_TRPR_SE_CD' AND impltTrprSe.CD_ID = iti.IMPLT_TRPR_SE_CD LEFT JOIN tb_cd_detail impltTrprSe ON impltTrprSe.CD_GROUP_ID = 'IMPLT_TRPR_SE_CD' AND impltTrprSe.CD_ID = iti.IMPLT_TRPR_SE_CD
LEFT JOIN tb_cd_detail sggCd ON sggCd.CD_GROUP_ID = 'SGG_CD' AND sggCd.CD_ID = iti.SGG_CD LEFT JOIN tb_cd_detail sggCd ON sggCd.CD_GROUP_ID = 'SGG_CD' AND sggCd.CD_ID = iti.SGG_CD
WHERE iti.IMPLT_INFO_ID = #{schImpltInfoId} WHERE iti.IMPLT_INFO_ID = #{schImpltInfoId}
AND iti.DEL_YN = 'N' AND iti.DEL_YN = 'N'
group by iti.SGG_CD, iti.IMPLT_INFO_ID, iti.IMPLT_TRPR_FLNM, iti.IMPLT_TRPR_ADDR, iti.IMPLT_TRPR_DADDR, iti.IMPLT_TRPR_ZIP, iti.IMPLT_TRPR_SE_CD GROUP BY iti.SGG_CD, iti.IMPLT_INFO_ID, iti.IMPLT_TRPR_FLNM, iti.IMPLT_TRPR_ADDR, iti.IMPLT_TRPR_DADDR, iti.IMPLT_TRPR_ZIP, iti.IMPLT_TRPR_SE_CD
ORDER BY iti.IMPLT_TRPR_SE_CD, iti.IMPLT_TRPR_FLNM ORDER BY iti.IMPLT_TRPR_SE_CD, iti.IMPLT_TRPR_FLNM
</select> </select>
</mapper> </mapper>

Loading…
Cancel
Save