
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.takensoft.portal.statistics.dao.StatisticsDAO">
<sql id="intenMid">
, ksic_up_cd
, ksic_cd
from ent_info as ei
left join ivst_dscsn as id
on ei.ent_id = id.ent_id
AND id.reg_dt::DATE >= #{startDt}::TIMESTAMP
AND #{endDt}::TIMESTAMP >= id.reg_dt::DATE
and id.use_yn = 'Y'
</sql>
<sql id="intenBot">
where ei.use_yn = 'Y'
AND ei.reg_dt::DATE >= #{startDt}::TIMESTAMP
AND #{endDt}::TIMESTAMP >= ei.reg_dt::DATE
group by ksic_up_cd, ksic_cd
</sql>
<!--
작 성 자 : 박정하
작 성 일 : 2024.06.13
내 용 : 분류별 통계 조회
-->
<select id="categoryStatistics" resultType="HashMap">
SELECT datas.ksic_up_cd
, datas.ksic_cd
, ent_cnt
, id_cnt
, mvn.mvn_cnt
, mou.mou_cnt
FROM (
SELECT ksic_up_cd
, ksic_cd
, COUNT(ei.ent_id) AS ent_cnt
, COUNT(id.ivst_dscsn_id) AS id_cnt
FROM ent_info AS ei
LEFT JOIN ivst_dscsn AS id
ON ei.ent_id = id.ent_id
AND id.use_yn='y'
AND id.reg_dt::DATE >= #{startDt}::TIMESTAMP
AND #{endDt}::TIMESTAMP >= id.reg_dt::DATE
WHERE ei.use_yn = 'Y'
AND ei.reg_dt::DATE >= #{startDt}::TIMESTAMP
AND #{endDt}::TIMESTAMP >= ei.reg_dt::DATE
GROUP BY ksic_up_cd, ksic_cd
) AS datas
LEFT JOIN (SELECT COUNT(ivst_dscsn_id) AS mvn_cnt <include refid="intenMid" /> AND mvn_inten = '1' <include refid="intenBot" />) AS mvn
ON datas.ksic_up_cd = mvn.ksic_up_cd
AND datas.ksic_cd = mvn.ksic_cd
LEFT JOIN (SELECT COUNT(ivst_dscsn_id) AS mou_cnt <include refid="intenMid" /> AND mou_inten = '1' <include refid="intenBot" />) AS mou
ON datas.ksic_up_cd = mou.ksic_up_cd
AND datas.ksic_cd = mou.ksic_cd
ORDER BY datas.ksic_up_cd, datas.ksic_cd
</select>
<sql id="selectConsultation">
SELECT COUNT(rvw_mttr_prgrs_id) AS cnt
FROM rvw_mttr_prgrs AS rmp
LEFT JOIN rvw_mttr AS imp
ON imp.rvw_mttr_id = rmp.rvw_mttr_id
WHERE imp.type = rm.type
</sql>
<!--
작 성 자 : 박정하
작 성 일 : 2024.06.13
내 용 : 검토사항 통계 조회
-->
<select id="rvwMttrStatistics" resultType="HashMap">
SELECT cm.cd AS type
, COALESCE(count, 0) AS count
, COALESCE(before, 0) AS before
, COALESCE(progress, 0) AS progress
, COALESCE(complete, 0) AS complete
FROM cd_mng AS cm
LEFT JOIN (
SELECT rm.type
, COUNT(ormp.rvw_mttr_prgrs_id) AS count
, (<include refid="selectConsultation" /> and prgrs_crs = '0') AS before
, (<include refid="selectConsultation" /> and prgrs_crs = '1') AS progress
, (<include refid="selectConsultation" /> and prgrs_crs = '2') AS complete
FROM rvw_mttr AS rm
LEFT JOIN rvw_mttr_prgrs AS ormp
ON rm.rvw_mttr_id = ormp.rvw_mttr_id
WHERE rm.use_yn = 'Y'
AND rm.reg_dt::DATE >= #{startDt}::TIMESTAMP
AND #{endDt}::TIMESTAMP >= rm.reg_dt::DATE
GROUP BY rm.type
) AS datas
ON cm.cd = datas.type
WHERE up_cd = 'rvwMttrType'
</select>
<!--
작 성 자 : 박정하
작 성 일 : 2024.06.14
내 용 : 상담신청 통계 조회
-->
<select id="consultationStatistics" resultType="HashMap">
SELECT years
, months
, days
, SUM(aply_cnt) AS aply_cnt
, SUM(complete_cnt) AS complete_cnt
FROM (
SELECT TO_CHAR(dates, 'YYYY') AS years
, TO_CHAR(dates, 'MM') AS months
, TO_CHAR(dates, 'DD') AS days
, COALESCE(aply.cnt, 0) AS aply_cnt
, COALESCE(complete.cnt, 0) AS complete_cnt
FROM generate_series(#{startDt}::TIMESTAMP, #{endDt}::TIMESTAMP, '1 day'::interval) AS dates
LEFT JOIN (
SELECT COUNT(ent_dscsn_aply_id) AS cnt
, reg_dt::DATE
FROM ent_dscsn_aply AS eda
WHERE use_yn = 'Y'
GROUP BY reg_dt::DATE
) AS aply
ON dates::DATE = aply.reg_dt
LEFT JOIN (
SELECT COUNT(ent_dscsn_aply_id) AS cnt
, actn_dt::DATE
FROM ent_dscsn_aply AS eda
WHERE use_yn = 'Y'
AND prcs_stts = 'E'
GROUP BY actn_dt::DATE
) AS complete
ON dates::DATE = complete.actn_dt
) AS datas
GROUP BY years, months, days
ORDER BY years, months, days
</select>
</mapper>