You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1976 lines
89 KiB
1976 lines
89 KiB
<?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.ccsens.carbasics.persist.dao.DataStatisticsDao">
|
|
|
|
<select id="statisticsJmrs" resultType="com.ccsens.carbasics.bean.vo.StatisticsVo$JmrsUpResult">
|
|
SELECT
|
|
round(allActual.`value` * 100 / allAis.`value`,1) AS jmrsl,
|
|
round(allTwoActual.`value` * 100 / allTwoAis.`value`,1) AS twoJmrsl,
|
|
round(allThreeActual.`value` * 100 / allThreeAis.`value`,1) AS threeJmrsl
|
|
FROM
|
|
(SELECT
|
|
SUM( actual.answer ) AS `value`
|
|
FROM
|
|
t_qcp_questionnaire_record AS actual
|
|
LEFT JOIN t_qcp_questionnaire_detail AS qd ON actual.questionnaire_detail_id = qd.id
|
|
LEFT JOIN t_qcp_questionnaire AS q ON qd.questionnaire_id = q.id
|
|
WHERE
|
|
actual.rec_status = 0
|
|
<if test="qid != null">
|
|
AND q.id = #{qid} AND q.rec_status = 0
|
|
</if>
|
|
AND qd.rec_status = 0
|
|
AND qd.submit_status = 1
|
|
AND actual.question_code = 'actual-Nnt') AS allActual,
|
|
(SELECT
|
|
SUM( ais.answer ) AS `value`
|
|
FROM
|
|
t_qcp_questionnaire_record AS ais
|
|
LEFT JOIN t_qcp_questionnaire_detail AS qd ON ais.questionnaire_detail_id = qd.id
|
|
LEFT JOIN t_qcp_questionnaire AS q ON qd.questionnaire_id = q.id
|
|
WHERE
|
|
ais.rec_status = 0
|
|
<if test="qid != null">
|
|
AND q.id = #{qid} AND q.rec_status = 0
|
|
</if>
|
|
AND qd.rec_status =0
|
|
AND qd.submit_status = 1
|
|
AND ais.question_code = 'AIS-Nnt') AS allAis,
|
|
(SELECT
|
|
SUM(twoActual.answer) AS `value`
|
|
FROM
|
|
t_qcp_questionnaire_record AS twoActual
|
|
LEFT JOIN t_qcp_questionnaire_record AS twoActual2 ON twoActual.questionnaire_detail_id = twoActual2.questionnaire_detail_id
|
|
LEFT JOIN t_qcp_questionnaire_detail AS qd ON qd.id = twoActual.questionnaire_detail_id AND qd.id = twoActual2.questionnaire_detail_id
|
|
LEFT JOIN t_qcp_questionnaire AS q ON qd.questionnaire_id = q.id
|
|
WHERE
|
|
twoActual.rec_status = 0
|
|
<if test="qid != null">
|
|
AND q.id = #{qid} AND q.rec_status = 0
|
|
</if>
|
|
AND twoActual2.rec_status = 0
|
|
AND twoActual2.answer = '二级'
|
|
AND twoActual.question_code = 'actual-Nnt'
|
|
AND qd.rec_status = 0 AND qd.submit_status = 1) AS allTwoActual,
|
|
(SELECT
|
|
SUM(twoAis.answer) AS `value`
|
|
FROM
|
|
t_qcp_questionnaire_record AS twoAis
|
|
LEFT JOIN t_qcp_questionnaire_record AS twoAis2 ON twoAis.questionnaire_detail_id = twoAis2.questionnaire_detail_id
|
|
LEFT JOIN t_qcp_questionnaire_detail AS qd ON qd.id = twoAis2.questionnaire_detail_id AND qd.id = twoAis.questionnaire_detail_id
|
|
LEFT JOIN t_qcp_questionnaire AS q ON qd.questionnaire_id = q.id
|
|
WHERE
|
|
twoAis.rec_status = 0
|
|
<if test="qid != null">
|
|
AND q.id = #{qid} AND q.rec_status = 0
|
|
</if>
|
|
AND twoAis2.rec_status = 0
|
|
AND twoAis2.answer = '二级'
|
|
AND twoAis.question_code = 'AIS-Nnt'
|
|
AND qd.rec_status = 0 AND qd.submit_status = 1) AS allTwoAis,
|
|
(SELECT
|
|
SUM(threeActual.answer) AS value
|
|
FROM
|
|
t_qcp_questionnaire_record AS threeActual
|
|
LEFT JOIN t_qcp_questionnaire_record AS threeActual2 ON threeActual.questionnaire_detail_id = threeActual2.questionnaire_detail_id
|
|
LEFT JOIN t_qcp_questionnaire_detail AS qd ON qd.id = threeActual.questionnaire_detail_id AND qd.id = threeActual2.questionnaire_detail_id
|
|
LEFT JOIN t_qcp_questionnaire AS q ON qd.questionnaire_id = q.id
|
|
WHERE
|
|
threeActual.rec_status = 0
|
|
<if test="qid != null">
|
|
AND q.id = #{qid} AND q.rec_status = 0
|
|
</if>
|
|
AND threeActual2.rec_status = 0
|
|
AND threeActual2.answer = '三级'
|
|
AND threeActual.question_code = 'actual-Nnt'
|
|
AND qd.rec_status = 0 AND qd.submit_status = 1) AS allThreeActual,
|
|
(SELECT
|
|
SUM(threeAis.answer) AS value
|
|
FROM
|
|
t_qcp_questionnaire_record AS threeAis
|
|
LEFT JOIN t_qcp_questionnaire_record AS threeAis2 ON threeAis.questionnaire_detail_id = threeAis2.questionnaire_detail_id
|
|
LEFT JOIN t_qcp_questionnaire_detail AS qd ON qd.id = threeAis.questionnaire_detail_id AND qd.id = threeAis2.questionnaire_detail_id
|
|
LEFT JOIN t_qcp_questionnaire AS q ON qd.questionnaire_id = q.id
|
|
WHERE
|
|
threeAis.rec_status = 0
|
|
<if test="qid != null">
|
|
AND q.id = #{qid} AND q.rec_status = 0
|
|
</if>
|
|
AND threeAis2.rec_status = 0
|
|
AND threeAis2.answer = '三级'
|
|
AND threeAis.question_code = 'AIS-Nnt'
|
|
AND qd.rec_status = 0 AND qd.submit_status = 1) AS allThreeAis
|
|
</select>
|
|
|
|
<select id="queryJmrsForHospital" resultType="com.ccsens.carbasics.bean.vo.StatisticsVo$AreaResult">
|
|
SELECT
|
|
gediAis.hname AS `name`,
|
|
IFNULL(round(gediRszs.`value` * 100 / gediAis.`value`+0.001,1),0.0) AS `value`,
|
|
gediRszs.`value` AS rsTotal
|
|
FROM
|
|
(SELECT
|
|
qr.answer AS area,
|
|
qr2.answer AS `value`,
|
|
qr3.answer As hname,
|
|
qd.id
|
|
FROM
|
|
t_qcp_questionnaire_record AS qr
|
|
LEFT JOIN t_qcp_questionnaire_detail AS qd ON qr.questionnaire_detail_id = qd.id
|
|
LEFT JOIN t_qcp_questionnaire AS q ON qd.questionnaire_id = q.id
|
|
LEFT JOIN t_qcp_questionnaire_record AS qr2 ON qr2.questionnaire_detail_id = qr.questionnaire_detail_id
|
|
LEFT JOIN t_qcp_questionnaire_record AS qr3 ON qr3.questionnaire_detail_id = qr.questionnaire_detail_id
|
|
<if test="type == 0 or type == 1">
|
|
LEFT JOIN t_qcp_questionnaire_record AS qr4 ON qr4.questionnaire_detail_id = qr.questionnaire_detail_id
|
|
</if>
|
|
WHERE
|
|
qr.rec_status = 0
|
|
<if test="qid != null">
|
|
AND q.id = #{qid} AND q.rec_status = 0
|
|
</if>
|
|
AND qr.question_code = 'CITY-COUNTY'
|
|
AND qd.rec_status = 0
|
|
AND qd.submit_status = 1
|
|
AND qr2.rec_status = 0
|
|
AND qr2.question_code = 'actual-Nnt'
|
|
AND qr3.rec_status = 0
|
|
AND qr3.question_code = 'HOS-NAME'
|
|
AND SUBSTRING_INDEX(qr.answer,',',1) = #{areaId}
|
|
<if test="type == 0">
|
|
AND qr4.rec_status = 0
|
|
AND qr4.question_code = 'HOS-LEVEL'
|
|
AND qr4.answer = '三级'
|
|
</if>
|
|
<if test="type == 1">
|
|
AND qr4.rec_status = 0
|
|
AND qr4.question_code = 'HOS-LEVEL'
|
|
AND qr4.answer = '二级'
|
|
</if>
|
|
) AS gediRszs,
|
|
(SELECT
|
|
qr.answer AS area,
|
|
qr2.answer AS `value`,
|
|
qr3.answer As hname,
|
|
qd.id
|
|
FROM
|
|
t_qcp_questionnaire_record AS qr
|
|
LEFT JOIN t_qcp_questionnaire_detail AS qd ON qr.questionnaire_detail_id = qd.id
|
|
LEFT JOIN t_qcp_questionnaire AS q ON qd.questionnaire_id = q.id
|
|
LEFT JOIN t_qcp_questionnaire_record AS qr2 ON qr2.questionnaire_detail_id = qr.questionnaire_detail_id
|
|
LEFT JOIN t_qcp_questionnaire_record AS qr3 ON qr3.questionnaire_detail_id = qr.questionnaire_detail_id
|
|
LEFT JOIN t_qcp_questionnaire_record AS qr4 ON qr4.questionnaire_detail_id = qr.questionnaire_detail_id
|
|
WHERE
|
|
qr.rec_status = 0
|
|
<if test="qid != null">
|
|
AND q.id = #{qid} AND q.rec_status = 0
|
|
</if>
|
|
AND qr.question_code = 'CITY-COUNTY'
|
|
AND qd.rec_status = 0
|
|
AND qd.submit_status = 1
|
|
AND qr2.rec_status = 0
|
|
AND qr2.question_code = 'AIS-Nnt'
|
|
AND qr3.rec_status = 0
|
|
AND qr3.question_code = 'HOS-NAME'
|
|
AND SUBSTRING_INDEX(qr.answer,',',1) = #{areaId}
|
|
<if test="type == 0">
|
|
AND qr4.rec_status = 0
|
|
AND qr4.question_code = 'HOS-LEVEL'
|
|
AND qr4.answer = '三级'
|
|
</if>
|
|
<if test="type == 1">
|
|
AND qr4.rec_status = 0
|
|
AND qr4.question_code = 'HOS-LEVEL'
|
|
AND qr4.answer = '二级'
|
|
</if>
|
|
) AS gediAis
|
|
WHERE gediRszs.id = gediAis.id
|
|
</select>
|
|
|
|
<select id="queryJmrslForCity" resultType="com.ccsens.carbasics.bean.vo.StatisticsVo$AreaResult">
|
|
SELECT
|
|
a.id AS areaId,
|
|
a.area_name AS `name`,
|
|
IFNULL(round(gediRszs.`value` * 100 / gediAis.`value`,1),0.0) AS `value`
|
|
FROM
|
|
(SELECT
|
|
qr.answer AS area,
|
|
SUM(qr2.answer) AS `value`
|
|
FROM
|
|
t_qcp_questionnaire_record AS qr
|
|
LEFT JOIN t_qcp_questionnaire_detail AS qd ON qr.questionnaire_detail_id = qd.id
|
|
LEFT JOIN t_qcp_questionnaire AS q ON qd.questionnaire_id = q.id
|
|
LEFT JOIN t_qcp_questionnaire_record AS qr2 ON qr2.questionnaire_detail_id = qr.questionnaire_detail_id
|
|
<if test="type == 0 or type == 1">
|
|
LEFT JOIN t_qcp_questionnaire_record AS qr3 ON qr3.questionnaire_detail_id = qr.questionnaire_detail_id
|
|
</if>
|
|
WHERE
|
|
qr.rec_status = 0
|
|
<if test="qid != null">
|
|
AND q.id = #{qid} AND q.rec_status = 0
|
|
</if>
|
|
AND qr.question_code = 'CITY-COUNTY'
|
|
AND qd.rec_status = 0
|
|
AND qd.submit_status = 1
|
|
AND qr2.rec_status = 0
|
|
AND qr2.question_code = 'actual-Nnt'
|
|
<if test="type == 0">
|
|
AND qr3.rec_status = 0
|
|
AND qr3.question_code = 'HOS-LEVEL'
|
|
AND qr3.answer = '三级'
|
|
</if>
|
|
<if test="type == 1">
|
|
AND qr3.rec_status = 0
|
|
AND qr3.question_code = 'HOS-LEVEL'
|
|
AND qr3.answer = '二级'
|
|
</if>
|
|
GROUP BY SUBSTRING_INDEX(qr.answer,',',1)
|
|
) AS gediRszs,
|
|
(SELECT
|
|
qr.answer AS area,
|
|
SUM(qr2.answer) AS `value`
|
|
FROM
|
|
t_qcp_questionnaire_record AS qr
|
|
LEFT JOIN t_qcp_questionnaire_detail AS qd ON qr.questionnaire_detail_id = qd.id
|
|
LEFT JOIN t_qcp_questionnaire AS q ON qd.questionnaire_id = q.id
|
|
LEFT JOIN t_qcp_questionnaire_record AS qr2 ON qr2.questionnaire_detail_id = qr.questionnaire_detail_id
|
|
<if test="type == 0 or type == 1">
|
|
LEFT JOIN t_qcp_questionnaire_record AS qr3 ON qr3.questionnaire_detail_id = qr.questionnaire_detail_id
|
|
</if>
|
|
WHERE
|
|
qr.rec_status = 0
|
|
<if test="qid != null">
|
|
AND q.id = #{qid} AND q.rec_status = 0
|
|
</if>
|
|
AND qr.question_code = 'CITY-COUNTY'
|
|
AND qd.rec_status = 0
|
|
AND qd.submit_status = 1
|
|
AND qr2.rec_status = 0
|
|
AND qr2.question_code = 'AIS-Nnt'
|
|
<if test="type == 0">
|
|
AND qr3.rec_status = 0
|
|
AND qr3.question_code = 'HOS-LEVEL'
|
|
AND qr3.answer = '三级'
|
|
</if>
|
|
<if test="type == 1">
|
|
AND qr3.rec_status = 0
|
|
AND qr3.question_code = 'HOS-LEVEL'
|
|
AND qr3.answer = '二级'
|
|
</if>
|
|
GROUP BY SUBSTRING_INDEX(qr.answer,',',1)
|
|
) AS gediAis
|
|
,t_area AS a
|
|
WHERE gediRszs.area = gediAis.area
|
|
AND a.rec_status = 0
|
|
AND SUBSTRING_INDEX(gediRszs.area,',',1) = a.id
|
|
</select>
|
|
|
|
<select id="dntTotalStatistics" resultType="com.ccsens.carbasics.bean.vo.StatisticsVo$DntTotalStatistics">
|
|
SELECT
|
|
round((answer45.value40+answer60.value60)*100/(answer45.value40+answer60.value60+answer61.value61),1) AS dntLess60,
|
|
round(answer45.value40*100/(answer45.value40+answer60.value60+answer61.value61),1) AS dntLess45
|
|
FROM
|
|
(
|
|
SELECT
|
|
SUM( actual.answer ) AS `value40`
|
|
FROM
|
|
t_qcp_questionnaire_record AS actual
|
|
LEFT JOIN t_qcp_questionnaire_detail AS qd ON actual.questionnaire_detail_id = qd.id
|
|
LEFT JOIN t_qcp_questionnaire AS q ON qd.questionnaire_id = q.id
|
|
WHERE
|
|
actual.rec_status = 0
|
|
<if test="qid != null">
|
|
AND q.id = #{qid} AND q.rec_status = 0
|
|
</if>
|
|
AND qd.rec_status = 0
|
|
AND qd.submit_status = 1
|
|
AND actual.question_code = '45-Nnt'
|
|
) AS answer45,
|
|
(
|
|
SELECT
|
|
SUM( actual.answer ) AS `value60`
|
|
FROM
|
|
t_qcp_questionnaire_record AS actual
|
|
LEFT JOIN t_qcp_questionnaire_detail AS qd ON actual.questionnaire_detail_id = qd.id
|
|
LEFT JOIN t_qcp_questionnaire AS q ON qd.questionnaire_id = q.id
|
|
WHERE
|
|
actual.rec_status = 0
|
|
<if test="qid != null">
|
|
AND q.id = #{qid} AND q.rec_status = 0
|
|
</if>
|
|
AND qd.rec_status = 0
|
|
AND qd.submit_status = 1
|
|
AND actual.question_code = '60-Nnt'
|
|
) AS answer60,
|
|
(
|
|
SELECT
|
|
SUM( actual.answer ) AS `value61`
|
|
FROM
|
|
t_qcp_questionnaire_record AS actual
|
|
LEFT JOIN t_qcp_questionnaire_detail AS qd ON actual.questionnaire_detail_id = qd.id
|
|
LEFT JOIN t_qcp_questionnaire AS q ON qd.questionnaire_id = q.id
|
|
WHERE
|
|
actual.rec_status = 0
|
|
<if test="qid != null">
|
|
AND q.id = #{qid} AND q.rec_status = 0
|
|
</if>
|
|
AND qd.rec_status = 0
|
|
AND qd.submit_status = 1
|
|
AND actual.question_code = '61-Nnt'
|
|
) AS answer61
|
|
</select>
|
|
|
|
|
|
<select id="dntSynopsis" resultType="com.ccsens.carbasics.bean.vo.StatisticsVo$DntSynopsis">
|
|
SELECT
|
|
<if test="areaId != null">
|
|
a.area_name AS cityName,
|
|
</if>
|
|
answer45.level AS `level`,
|
|
round((answer45.value40+answer60.value60)*100/(answer45.value40+answer60.value60+answer61.value61),1) AS dntLess60,
|
|
round(answer45.value40*100/(answer45.value40+answer60.value60+answer61.value61),1) AS dntLess45
|
|
FROM
|
|
(
|
|
SELECT
|
|
<if test="areaId != null">
|
|
SUBSTRING_INDEX(area.answer,',',1) AS area,
|
|
</if>
|
|
LEFT(`level`.answer,1) AS level,
|
|
SUM( actual.answer ) AS `value40`
|
|
FROM
|
|
t_qcp_questionnaire_record AS actual
|
|
LEFT JOIN t_qcp_questionnaire_detail AS qd ON actual.questionnaire_detail_id = qd.id
|
|
LEFT JOIN t_qcp_questionnaire AS q ON qd.questionnaire_id = q.id
|
|
LEFT JOIN t_qcp_questionnaire_record AS `level` ON `level`.questionnaire_detail_id = qd.id
|
|
<if test="areaId != null">
|
|
LEFT JOIN t_qcp_questionnaire_record AS area ON area.questionnaire_detail_id = qd.id
|
|
</if>
|
|
WHERE
|
|
actual.rec_status = 0
|
|
<if test="qid != null">
|
|
AND q.id = #{qid} AND q.rec_status = 0
|
|
</if>
|
|
AND qd.rec_status = 0
|
|
AND qd.submit_status = 1
|
|
AND actual.question_code = '45-Nnt'
|
|
<if test="queryLevel == 0">
|
|
|
|
AND `level`.rec_status = 0
|
|
AND `level`.question_code = 'HOS-LEVEL'
|
|
AND `level`.answer = '三级'
|
|
</if>
|
|
<if test="queryLevel == 1">
|
|
|
|
AND `level`.rec_status = 0
|
|
AND `level`.question_code = 'HOS-LEVEL'
|
|
AND `level`.answer = '二级'
|
|
</if>
|
|
|
|
<if test="areaId != null">
|
|
AND `area`.rec_status = 0
|
|
AND `area`.question_code = 'CITY-COUNTY'
|
|
AND SUBSTRING_INDEX(area.answer,',',1) = #{areaId}
|
|
</if>
|
|
|
|
) AS answer45,
|
|
(
|
|
SELECT
|
|
SUM( actual.answer ) AS `value60`
|
|
FROM
|
|
t_qcp_questionnaire_record AS actual
|
|
LEFT JOIN t_qcp_questionnaire_detail AS qd ON actual.questionnaire_detail_id = qd.id
|
|
LEFT JOIN t_qcp_questionnaire AS q ON qd.questionnaire_id = q.id
|
|
LEFT JOIN t_qcp_questionnaire_record AS `level` ON `level`.questionnaire_detail_id = qd.id
|
|
<if test="areaId != null">
|
|
LEFT JOIN t_qcp_questionnaire_record AS area ON area.questionnaire_detail_id = qd.id
|
|
</if>
|
|
WHERE
|
|
actual.rec_status = 0
|
|
<if test="qid != null">
|
|
AND q.id = #{qid} AND q.rec_status = 0
|
|
</if>
|
|
AND qd.rec_status = 0
|
|
AND qd.submit_status = 1
|
|
AND actual.question_code = '60-Nnt'
|
|
<if test="queryLevel == 0">
|
|
AND `level`.rec_status = 0
|
|
AND `level`.question_code = 'HOS-LEVEL'
|
|
AND `level`.answer = '三级'
|
|
</if>
|
|
<if test="queryLevel == 1">
|
|
AND `level`.rec_status = 0
|
|
AND `level`.question_code = 'HOS-LEVEL'
|
|
AND `level`.answer = '二级'
|
|
</if>
|
|
|
|
<if test="areaId != null">
|
|
AND `area`.rec_status = 0
|
|
AND `area`.question_code = 'CITY-COUNTY'
|
|
AND SUBSTRING_INDEX(area.answer,',',1) = #{areaId}
|
|
</if>
|
|
) AS answer60,
|
|
(
|
|
SELECT
|
|
SUM( actual.answer ) AS `value61`
|
|
FROM
|
|
t_qcp_questionnaire_record AS actual
|
|
LEFT JOIN t_qcp_questionnaire_detail AS qd ON actual.questionnaire_detail_id = qd.id
|
|
LEFT JOIN t_qcp_questionnaire AS q ON qd.questionnaire_id = q.id
|
|
LEFT JOIN t_qcp_questionnaire_record AS `level` ON `level`.questionnaire_detail_id = qd.id
|
|
<if test="areaId != null">
|
|
LEFT JOIN t_qcp_questionnaire_record AS area ON area.questionnaire_detail_id = qd.id
|
|
</if>
|
|
WHERE
|
|
actual.rec_status = 0
|
|
<if test="qid != null">
|
|
AND q.id = #{qid} AND q.rec_status = 0
|
|
</if>
|
|
AND qd.rec_status = 0
|
|
AND qd.submit_status = 1
|
|
AND actual.question_code = '61-Nnt'
|
|
<if test="queryLevel == 0">
|
|
AND `level`.rec_status = 0
|
|
AND `level`.question_code = 'HOS-LEVEL'
|
|
AND `level`.answer = '三级'
|
|
</if>
|
|
<if test="queryLevel == 1">
|
|
AND `level`.rec_status = 0
|
|
AND `level`.question_code = 'HOS-LEVEL'
|
|
AND `level`.answer = '二级'
|
|
</if>
|
|
<if test="areaId != null">
|
|
AND `area`.rec_status = 0
|
|
AND `area`.question_code = 'CITY-COUNTY'
|
|
AND SUBSTRING_INDEX(area.answer,',',1) = #{areaId}
|
|
</if>
|
|
) AS answer61
|
|
<if test="areaId != null">
|
|
,
|
|
t_area AS a WHERE a.id = answer45.area AND a.rec_status = 0
|
|
</if>
|
|
</select>
|
|
|
|
<select id="dntDataForCity" resultType="com.ccsens.carbasics.bean.vo.StatisticsVo$DntData">
|
|
SELECT
|
|
a.id AS areaId,
|
|
a.area_name AS name,
|
|
answer45.level,
|
|
round((answer45.value40+answer60.value60)*100/(answer45.value40+answer60.value60+answer61.value61),1) AS dntLess60,
|
|
round(answer45.value40*100/(answer45.value40+answer60.value60+answer61.value61),1) AS dntLess45,
|
|
round((answer45all.value40+answer60all.value60)*100/(answer45all.value40+answer60all.value60+answer61all.value61),1) AS dntLess60All,
|
|
round(answer45all.value40*100/(answer45all.value40+answer60all.value60+answer61all.value61),1) AS dntLess45All
|
|
|
|
FROM
|
|
(
|
|
SELECT
|
|
SUBSTRING_INDEX(area.answer,',',1) AS area,
|
|
LEFT(`level`.answer,1) AS level,
|
|
SUM(actual.answer) AS `value40`
|
|
FROM
|
|
t_qcp_questionnaire_record AS actual
|
|
LEFT JOIN t_qcp_questionnaire_detail AS qd ON actual.questionnaire_detail_id = qd.id
|
|
LEFT JOIN t_qcp_questionnaire AS q ON qd.questionnaire_id = q.id
|
|
LEFT JOIN t_qcp_questionnaire_record AS `level` ON `level`.questionnaire_detail_id = qd.id
|
|
LEFT JOIN t_qcp_questionnaire_record AS area ON area.questionnaire_detail_id = qd.id
|
|
WHERE
|
|
actual.rec_status = 0
|
|
<if test="param.qid != null">
|
|
AND q.id = #{qid} AND q.rec_status = 0
|
|
</if>
|
|
AND qd.rec_status = 0
|
|
AND qd.submit_status = 1
|
|
AND actual.question_code = '45-Nnt'
|
|
<if test="param.queryLevel == 0">
|
|
-- 等级
|
|
AND `level`.rec_status = 0
|
|
AND `level`.question_code = 'HOS-LEVEL'
|
|
AND `level`.answer = '三级'
|
|
</if>
|
|
<if test="param.queryLevel == 1">
|
|
-- 等级
|
|
AND `level`.rec_status = 0
|
|
AND `level`.question_code = 'HOS-LEVEL'
|
|
AND `level`.answer = '二级'
|
|
</if>
|
|
-- 地区
|
|
AND `area`.rec_status = 0
|
|
AND `area`.question_code = 'CITY-COUNTY'
|
|
GROUP BY SUBSTRING_INDEX(area.answer,',',1)
|
|
) AS answer45,
|
|
(
|
|
SELECT
|
|
SUBSTRING_INDEX(area.answer,',',1) AS area,
|
|
LEFT(`level`.answer,1) AS level,
|
|
SUM(actual.answer) AS `value60`
|
|
FROM
|
|
t_qcp_questionnaire_record AS actual
|
|
LEFT JOIN t_qcp_questionnaire_detail AS qd ON actual.questionnaire_detail_id = qd.id
|
|
LEFT JOIN t_qcp_questionnaire AS q ON qd.questionnaire_id = q.id
|
|
LEFT JOIN t_qcp_questionnaire_record AS `level` ON `level`.questionnaire_detail_id = qd.id
|
|
LEFT JOIN t_qcp_questionnaire_record AS area ON area.questionnaire_detail_id = qd.id
|
|
WHERE
|
|
actual.rec_status = 0
|
|
<if test="param.qid != null">
|
|
AND q.id = #{qid} AND q.rec_status = 0
|
|
</if>
|
|
AND qd.rec_status = 0
|
|
AND qd.submit_status = 1
|
|
AND actual.question_code = '60-Nnt'
|
|
<if test="param.queryLevel == 0">
|
|
-- 等级
|
|
AND `level`.rec_status = 0
|
|
AND `level`.question_code = 'HOS-LEVEL'
|
|
AND `level`.answer = '三级'
|
|
</if>
|
|
<if test="param.queryLevel == 1">
|
|
-- 等级
|
|
AND `level`.rec_status = 0
|
|
AND `level`.question_code = 'HOS-LEVEL'
|
|
AND `level`.answer = '二级'
|
|
</if>
|
|
-- 地区
|
|
AND `area`.rec_status = 0
|
|
AND `area`.question_code = 'CITY-COUNTY'
|
|
GROUP BY SUBSTRING_INDEX(area.answer,',',1)
|
|
) AS answer60,
|
|
(
|
|
SELECT
|
|
SUBSTRING_INDEX(area.answer,',',1) AS area,
|
|
LEFT(`level`.answer,1) AS level,
|
|
SUM(actual.answer) AS `value61`
|
|
FROM
|
|
t_qcp_questionnaire_record AS actual
|
|
LEFT JOIN t_qcp_questionnaire_detail AS qd ON actual.questionnaire_detail_id = qd.id
|
|
LEFT JOIN t_qcp_questionnaire AS q ON qd.questionnaire_id = q.id
|
|
LEFT JOIN t_qcp_questionnaire_record AS `level` ON `level`.questionnaire_detail_id = qd.id
|
|
LEFT JOIN t_qcp_questionnaire_record AS area ON area.questionnaire_detail_id = qd.id
|
|
WHERE
|
|
actual.rec_status = 0
|
|
<if test="param.qid != null">
|
|
AND q.id = #{qid} AND q.rec_status = 0
|
|
</if>
|
|
AND qd.rec_status = 0
|
|
AND qd.submit_status = 1
|
|
AND actual.question_code = '61-Nnt'
|
|
<if test="param.queryLevel == 0">
|
|
-- 等级
|
|
AND `level`.rec_status = 0
|
|
AND `level`.question_code = 'HOS-LEVEL'
|
|
AND `level`.answer = '三级'
|
|
</if>
|
|
<if test="param.queryLevel == 1">
|
|
-- 等级
|
|
AND `level`.rec_status = 0
|
|
AND `level`.question_code = 'HOS-LEVEL'
|
|
AND `level`.answer = '二级'
|
|
</if>
|
|
-- 地区
|
|
AND `area`.rec_status = 0
|
|
AND `area`.question_code = 'CITY-COUNTY'
|
|
GROUP BY SUBSTRING_INDEX(area.answer,',',1)
|
|
) AS answer61,
|
|
|
|
-- 各市DNT统计 不包含二三级
|
|
(
|
|
SELECT
|
|
SUBSTRING_INDEX(area.answer,',',1) AS area,
|
|
SUM(actual.answer) AS `value40`
|
|
FROM
|
|
t_qcp_questionnaire_record AS actual
|
|
LEFT JOIN t_qcp_questionnaire_detail AS qd ON actual.questionnaire_detail_id = qd.id
|
|
LEFT JOIN t_qcp_questionnaire AS q ON qd.questionnaire_id = q.id
|
|
LEFT JOIN t_qcp_questionnaire_record AS area ON area.questionnaire_detail_id = qd.id
|
|
WHERE
|
|
actual.rec_status = 0
|
|
<if test="param.qid != null">
|
|
AND q.id = #{qid} AND q.rec_status = 0
|
|
</if>
|
|
AND qd.rec_status = 0
|
|
AND qd.submit_status = 1
|
|
AND actual.question_code = '45-Nnt'
|
|
-- 地区
|
|
AND `area`.rec_status = 0
|
|
AND `area`.question_code = 'CITY-COUNTY'
|
|
GROUP BY SUBSTRING_INDEX(area.answer,',',1)
|
|
) AS answer45all,
|
|
(
|
|
SELECT
|
|
SUBSTRING_INDEX(area.answer,',',1) AS area,
|
|
SUM(actual.answer) AS `value60`
|
|
FROM
|
|
t_qcp_questionnaire_record AS actual
|
|
LEFT JOIN t_qcp_questionnaire_detail AS qd ON actual.questionnaire_detail_id = qd.id
|
|
LEFT JOIN t_qcp_questionnaire AS q ON qd.questionnaire_id = q.id
|
|
LEFT JOIN t_qcp_questionnaire_record AS area ON area.questionnaire_detail_id = qd.id
|
|
WHERE
|
|
actual.rec_status = 0
|
|
<if test="param.qid != null">
|
|
AND q.id = #{qid} AND q.rec_status = 0
|
|
</if>
|
|
AND qd.rec_status = 0
|
|
AND qd.submit_status = 1
|
|
AND actual.question_code = '60-Nnt'
|
|
-- 地区
|
|
AND `area`.rec_status = 0
|
|
AND `area`.question_code = 'CITY-COUNTY'
|
|
GROUP BY SUBSTRING_INDEX(area.answer,',',1)
|
|
) AS answer60all,
|
|
(
|
|
SELECT
|
|
SUBSTRING_INDEX(area.answer,',',1) AS area,
|
|
SUM(actual.answer) AS `value61`
|
|
FROM
|
|
t_qcp_questionnaire_record AS actual
|
|
LEFT JOIN t_qcp_questionnaire_detail AS qd ON actual.questionnaire_detail_id = qd.id
|
|
LEFT JOIN t_qcp_questionnaire AS q ON qd.questionnaire_id = q.id
|
|
LEFT JOIN t_qcp_questionnaire_record AS area ON area.questionnaire_detail_id = qd.id
|
|
WHERE
|
|
actual.rec_status = 0
|
|
<if test="param.qid != null">
|
|
AND q.id = #{qid} AND q.rec_status = 0
|
|
</if>
|
|
AND qd.rec_status = 0
|
|
AND qd.submit_status = 1
|
|
AND actual.question_code = '61-Nnt'
|
|
-- 地区
|
|
AND `area`.rec_status = 0
|
|
AND `area`.question_code = 'CITY-COUNTY'
|
|
GROUP BY SUBSTRING_INDEX(area.answer,',',1)
|
|
) AS answer61all,
|
|
t_area AS a
|
|
WHERE a.id = answer45.area
|
|
AND answer45.area = answer60.area
|
|
AND answer60.area = answer61.area
|
|
AND answer45.area = answer45all.area
|
|
AND answer45all.area = answer60all.area
|
|
AND answer60all.area = answer61all.area
|
|
ORDER BY dntLess60 DESC
|
|
</select>
|
|
|
|
<select id="dntDataForHospital" resultType="com.ccsens.carbasics.bean.vo.StatisticsVo$DntData">
|
|
SELECT
|
|
answer45.hospital AS name,
|
|
answer45.`level`,
|
|
IFNULL(round((answer45.value40+answer60.value60)*100/(answer45.value40+answer60.value60+answer61.value61),1),0.0) AS dntLess60All,
|
|
IFNULL(round(answer45.value40*100/(answer45.value40+answer60.value60+answer61.value61),1),0.0) AS dntLess45All,
|
|
answer45.VALUE40 AS dntLess45H,
|
|
answer60.value60 AS dntLess60H,
|
|
answer61.value61 AS dnt61H
|
|
FROM
|
|
(
|
|
SELECT
|
|
hospital.answer AS hospital,
|
|
SUBSTRING_INDEX(area.answer,',',1) AS area,
|
|
LEFT(`level`.answer,1) AS level,
|
|
actual.answer AS `value40`,
|
|
qd.id
|
|
FROM
|
|
t_qcp_questionnaire_record AS actual
|
|
LEFT JOIN t_qcp_questionnaire_detail AS qd ON actual.questionnaire_detail_id = qd.id
|
|
LEFT JOIN t_qcp_questionnaire AS q ON qd.questionnaire_id = q.id
|
|
LEFT JOIN t_qcp_questionnaire_record AS `level` ON `level`.questionnaire_detail_id = qd.id
|
|
LEFT JOIN t_qcp_questionnaire_record AS area ON area.questionnaire_detail_id = qd.id
|
|
LEFT JOIN t_qcp_questionnaire_record AS hospital ON hospital.questionnaire_detail_id = qd.id
|
|
WHERE
|
|
actual.rec_status = 0
|
|
<if test="param.qid != null">
|
|
AND q.id = #{qid} AND q.rec_status = 0
|
|
</if>
|
|
AND qd.rec_status = 0
|
|
AND qd.submit_status = 1
|
|
AND actual.question_code = '45-Nnt'
|
|
<if test="param.queryLevel == 0">
|
|
-- 等级
|
|
AND `level`.rec_status = 0
|
|
AND `level`.question_code = 'HOS-LEVEL'
|
|
AND `level`.answer = '三级'
|
|
</if>
|
|
<if test="param.queryLevel == 1">
|
|
-- 等级
|
|
AND `level`.rec_status = 0
|
|
AND `level`.question_code = 'HOS-LEVEL'
|
|
AND `level`.answer = '二级'
|
|
</if>
|
|
-- 地区
|
|
AND `area`.rec_status = 0
|
|
AND `area`.question_code = 'CITY-COUNTY'
|
|
AND SUBSTRING_INDEX(area.answer,',',1) = #{param.areaId}
|
|
-- 医院名
|
|
AND hospital.rec_status = 0
|
|
AND hospital.question_code = 'HOS-NAME'
|
|
) AS answer45
|
|
LEFT JOIN
|
|
(
|
|
SELECT
|
|
hospital.answer AS hospital,
|
|
SUBSTRING_INDEX(area.answer,',',1) AS area,
|
|
LEFT(`level`.answer,1) AS level,
|
|
actual.answer AS `value60`,
|
|
qd.id
|
|
FROM
|
|
t_qcp_questionnaire_record AS actual
|
|
LEFT JOIN t_qcp_questionnaire_detail AS qd ON actual.questionnaire_detail_id = qd.id
|
|
LEFT JOIN t_qcp_questionnaire AS q ON qd.questionnaire_id = q.id
|
|
LEFT JOIN t_qcp_questionnaire_record AS `level` ON `level`.questionnaire_detail_id = qd.id
|
|
LEFT JOIN t_qcp_questionnaire_record AS area ON area.questionnaire_detail_id = qd.id
|
|
LEFT JOIN t_qcp_questionnaire_record AS hospital ON hospital.questionnaire_detail_id = qd.id
|
|
WHERE
|
|
actual.rec_status = 0
|
|
<if test="param.qid != null">
|
|
AND q.id = #{qid} AND q.rec_status = 0
|
|
</if>
|
|
AND qd.rec_status = 0
|
|
AND qd.submit_status = 1
|
|
AND actual.question_code = '60-Nnt'
|
|
<if test="param.queryLevel == 0">
|
|
-- 等级
|
|
AND `level`.rec_status = 0
|
|
AND `level`.question_code = 'HOS-LEVEL'
|
|
AND `level`.answer = '三级'
|
|
</if>
|
|
<if test="param.queryLevel == 1">
|
|
-- 等级
|
|
AND `level`.rec_status = 0
|
|
AND `level`.question_code = 'HOS-LEVEL'
|
|
AND `level`.answer = '二级'
|
|
</if>
|
|
-- 地区
|
|
AND `area`.rec_status = 0
|
|
AND `area`.question_code = 'CITY-COUNTY'
|
|
AND SUBSTRING_INDEX(area.answer,',',1) = #{param.areaId}
|
|
-- 医院名
|
|
AND hospital.rec_status = 0
|
|
AND hospital.question_code = 'HOS-NAME'
|
|
) AS answer60 ON answer45.id = answer60.id
|
|
LEFT JOIN
|
|
(
|
|
SELECT
|
|
hospital.answer AS hospital,
|
|
SUBSTRING_INDEX(area.answer,',',1) AS area,
|
|
LEFT(`level`.answer,1) AS level,
|
|
actual.answer AS `value61`,
|
|
qd.id
|
|
FROM
|
|
t_qcp_questionnaire_record AS actual
|
|
LEFT JOIN t_qcp_questionnaire_detail AS qd ON actual.questionnaire_detail_id = qd.id
|
|
LEFT JOIN t_qcp_questionnaire AS q ON qd.questionnaire_id = q.id
|
|
LEFT JOIN t_qcp_questionnaire_record AS `level` ON `level`.questionnaire_detail_id = qd.id
|
|
LEFT JOIN t_qcp_questionnaire_record AS area ON area.questionnaire_detail_id = qd.id
|
|
LEFT JOIN t_qcp_questionnaire_record AS hospital ON hospital.questionnaire_detail_id = qd.id
|
|
WHERE
|
|
actual.rec_status = 0
|
|
<if test="param.qid != null">
|
|
AND q.id = #{qid} AND q.rec_status = 0
|
|
</if>
|
|
AND qd.rec_status = 0
|
|
AND qd.submit_status = 1
|
|
AND actual.question_code = '61-Nnt'
|
|
<if test="param.queryLevel == 0">
|
|
-- 等级
|
|
AND `level`.rec_status = 0
|
|
AND `level`.question_code = 'HOS-LEVEL'
|
|
AND `level`.answer = '三级'
|
|
</if>
|
|
<if test="param.queryLevel == 1">
|
|
-- 等级
|
|
AND `level`.rec_status = 0
|
|
AND `level`.question_code = 'HOS-LEVEL'
|
|
AND `level`.answer = '二级'
|
|
</if>
|
|
-- 地区
|
|
AND `area`.rec_status = 0
|
|
AND `area`.question_code = 'CITY-COUNTY'
|
|
AND SUBSTRING_INDEX(area.answer,',',1) = #{param.areaId}
|
|
-- 医院名
|
|
AND hospital.rec_status = 0
|
|
AND hospital.question_code = 'HOS-NAME'
|
|
) AS answer61 ON answer61.id = answer45.id
|
|
ORDER BY (answer45.VALUE40+answer60.value60+answer61.value61) DESC
|
|
</select>
|
|
|
|
<select id="sichTotal" resultType="com.ccsens.carbasics.bean.vo.StatisticsVo$SichTotal">
|
|
SELECT
|
|
round(answer1.sich*100/answer2.actual,1) AS sichTotal
|
|
FROM
|
|
(
|
|
SELECT
|
|
SUM( actual.answer ) AS sich
|
|
FROM
|
|
t_qcp_questionnaire_record AS actual
|
|
LEFT JOIN t_qcp_questionnaire_detail AS qd ON actual.questionnaire_detail_id = qd.id
|
|
LEFT JOIN t_qcp_questionnaire AS q ON qd.questionnaire_id = q.id
|
|
WHERE
|
|
actual.rec_status = 0
|
|
<if test="qid != null">
|
|
AND q.id = #{qid} AND q.rec_status = 0
|
|
</if>
|
|
AND qd.rec_status = 0
|
|
AND qd.submit_status = 1
|
|
AND actual.question_code = 'sICH-Nnt'
|
|
) AS answer1,
|
|
(
|
|
SELECT
|
|
SUM( actual.answer ) AS actual
|
|
FROM
|
|
t_qcp_questionnaire_record AS actual
|
|
LEFT JOIN t_qcp_questionnaire_detail AS qd ON actual.questionnaire_detail_id = qd.id
|
|
LEFT JOIN t_qcp_questionnaire AS q ON qd.questionnaire_id = q.id
|
|
WHERE
|
|
actual.rec_status = 0
|
|
<if test="qid != null">
|
|
AND q.id = #{qid} AND q.rec_status = 0
|
|
</if>
|
|
AND qd.rec_status = 0
|
|
AND qd.submit_status = 1
|
|
AND actual.question_code = 'actual-Nnt'
|
|
) AS answer2
|
|
</select>
|
|
|
|
<select id="sichSynopsis" resultType="com.ccsens.carbasics.bean.vo.StatisticsVo$SichSynopsis">
|
|
SELECT
|
|
<if test="areaId != null">
|
|
a.area_name AS cityName,
|
|
</if>
|
|
answer1.level,
|
|
round(answer1.sich*100/answer2.actual+0.001,1) AS sichFsl
|
|
FROM
|
|
(
|
|
SELECT
|
|
<if test="areaId != null">
|
|
SUBSTRING_INDEX(area.answer,',',1) AS area,
|
|
</if>
|
|
LEFT(`level`.answer,1) AS level,
|
|
SUM( actual.answer ) AS sich
|
|
FROM
|
|
t_qcp_questionnaire_record AS actual
|
|
LEFT JOIN t_qcp_questionnaire_detail AS qd ON actual.questionnaire_detail_id = qd.id
|
|
LEFT JOIN t_qcp_questionnaire AS q ON qd.questionnaire_id = q.id
|
|
LEFT JOIN t_qcp_questionnaire_record AS `level` ON `level`.questionnaire_detail_id = qd.id
|
|
<if test="areaId != null">
|
|
LEFT JOIN t_qcp_questionnaire_record AS area ON area.questionnaire_detail_id = qd.id
|
|
</if>
|
|
WHERE
|
|
actual.rec_status = 0
|
|
<if test="qid != null">
|
|
AND q.id = #{qid} AND q.rec_status = 0
|
|
</if>
|
|
AND qd.rec_status = 0
|
|
AND qd.submit_status = 1
|
|
AND actual.question_code = 'sICH-Nnt'
|
|
<if test="queryLevel == 0">
|
|
-- 等级
|
|
AND `level`.rec_status = 0
|
|
AND `level`.question_code = 'HOS-LEVEL'
|
|
AND `level`.answer = '三级'
|
|
</if>
|
|
<if test="queryLevel == 1">
|
|
-- 等级
|
|
AND `level`.rec_status = 0
|
|
AND `level`.question_code = 'HOS-LEVEL'
|
|
AND `level`.answer = '二级'
|
|
</if>
|
|
<if test="areaId != null">
|
|
AND `area`.rec_status = 0
|
|
AND `area`.question_code = 'CITY-COUNTY'
|
|
AND SUBSTRING_INDEX(area.answer,',',1) = #{areaId}
|
|
</if>
|
|
) AS answer1,
|
|
(
|
|
SELECT
|
|
SUM( actual.answer ) AS actual
|
|
FROM
|
|
t_qcp_questionnaire_record AS actual
|
|
LEFT JOIN t_qcp_questionnaire_detail AS qd ON actual.questionnaire_detail_id = qd.id
|
|
LEFT JOIN t_qcp_questionnaire AS q ON qd.questionnaire_id = q.id
|
|
LEFT JOIN t_qcp_questionnaire_record AS `level` ON `level`.questionnaire_detail_id = qd.id
|
|
<if test="areaId != null">
|
|
LEFT JOIN t_qcp_questionnaire_record AS area ON area.questionnaire_detail_id = qd.id
|
|
</if>
|
|
WHERE
|
|
actual.rec_status = 0
|
|
<if test="qid != null">
|
|
AND q.id = #{qid} AND q.rec_status = 0
|
|
</if>
|
|
AND qd.rec_status = 0
|
|
AND qd.submit_status = 1
|
|
AND actual.question_code = 'actual-Nnt'
|
|
<if test="queryLevel == 0">
|
|
-- 等级
|
|
AND `level`.rec_status = 0
|
|
AND `level`.question_code = 'HOS-LEVEL'
|
|
AND `level`.answer = '三级'
|
|
</if>
|
|
<if test="queryLevel == 1">
|
|
-- 等级
|
|
AND `level`.rec_status = 0
|
|
AND `level`.question_code = 'HOS-LEVEL'
|
|
AND `level`.answer = '二级'
|
|
</if>
|
|
<if test="areaId != null">
|
|
AND `area`.rec_status = 0
|
|
AND `area`.question_code = 'CITY-COUNTY'
|
|
AND SUBSTRING_INDEX(area.answer,',',1) = #{areaId}
|
|
</if>
|
|
) AS answer2
|
|
<if test="areaId != null">
|
|
,
|
|
t_area AS a
|
|
WHERE
|
|
answer1.area = a.id
|
|
</if>
|
|
|
|
</select>
|
|
|
|
<select id="sichDataForCity" resultType="com.ccsens.carbasics.bean.vo.StatisticsVo$SichData">
|
|
-- 具体查询1
|
|
SELECT
|
|
a1.areaId AS areaId,
|
|
a1.area_name AS name,
|
|
a1.lncx AS sichFsl,
|
|
a2.lncxAll AS sichFslAll
|
|
FROM
|
|
(SELECT
|
|
a.id AS areaId,
|
|
a.area_name,
|
|
round(answer1.sich*100/answer2.actual+0.001,1) AS lncx
|
|
FROM
|
|
(
|
|
SELECT
|
|
qd.id AS detailId,
|
|
SUBSTRING_INDEX(area.answer,',',1) AS area,
|
|
SUM( actual.answer ) AS sich
|
|
FROM
|
|
t_qcp_questionnaire_record AS actual
|
|
LEFT JOIN t_qcp_questionnaire_detail AS qd ON actual.questionnaire_detail_id = qd.id
|
|
LEFT JOIN t_qcp_questionnaire AS q ON qd.questionnaire_id = q.id
|
|
LEFT JOIN t_qcp_questionnaire_record AS `level` ON `level`.questionnaire_detail_id = qd.id
|
|
LEFT JOIN t_qcp_questionnaire_record AS area ON area.questionnaire_detail_id = qd.id
|
|
WHERE
|
|
actual.rec_status = 0
|
|
<if test="param.qid != null">
|
|
AND q.id = #{qid} AND q.rec_status = 0
|
|
</if>
|
|
AND qd.rec_status = 0
|
|
AND qd.submit_status = 1
|
|
AND actual.question_code = 'sICH-Nnt'
|
|
<if test="param.queryLevel == 0">
|
|
-- 等级
|
|
AND `level`.rec_status = 0
|
|
AND `level`.question_code = 'HOS-LEVEL'
|
|
AND `level`.answer = '三级'
|
|
</if>
|
|
<if test="param.queryLevel == 1">
|
|
-- 等级
|
|
AND `level`.rec_status = 0
|
|
AND `level`.question_code = 'HOS-LEVEL'
|
|
AND `level`.answer = '二级'
|
|
</if>
|
|
-- 地区
|
|
AND `area`.rec_status = 0
|
|
AND `area`.question_code = 'CITY-COUNTY'
|
|
GROUP BY SUBSTRING_INDEX(area.answer,',',1)
|
|
) AS answer1,
|
|
(
|
|
SELECT
|
|
qd.id AS detailId,
|
|
SUM( actual.answer ) AS actual
|
|
FROM
|
|
t_qcp_questionnaire_record AS actual
|
|
LEFT JOIN t_qcp_questionnaire_detail AS qd ON actual.questionnaire_detail_id = qd.id
|
|
LEFT JOIN t_qcp_questionnaire AS q ON qd.questionnaire_id = q.id
|
|
LEFT JOIN t_qcp_questionnaire_record AS `level` ON `level`.questionnaire_detail_id = qd.id
|
|
LEFT JOIN t_qcp_questionnaire_record AS area ON area.questionnaire_detail_id = qd.id
|
|
WHERE
|
|
actual.rec_status = 0
|
|
<if test="param.qid != null">
|
|
AND q.id = #{qid} AND q.rec_status = 0
|
|
</if>
|
|
AND qd.rec_status = 0
|
|
AND qd.submit_status = 1
|
|
AND actual.question_code = 'actual-Nnt'
|
|
<if test="param.queryLevel == 0">
|
|
-- 等级
|
|
AND `level`.rec_status = 0
|
|
AND `level`.question_code = 'HOS-LEVEL'
|
|
AND `level`.answer = '三级'
|
|
</if>
|
|
<if test="param.queryLevel == 1">
|
|
-- 等级
|
|
AND `level`.rec_status = 0
|
|
AND `level`.question_code = 'HOS-LEVEL'
|
|
AND `level`.answer = '二级'
|
|
</if>
|
|
-- 地区
|
|
AND `area`.rec_status = 0
|
|
AND `area`.question_code = 'CITY-COUNTY'
|
|
GROUP BY SUBSTRING_INDEX(area.answer,',',1)
|
|
) AS answer2,
|
|
t_area AS a
|
|
WHERE
|
|
answer1.area = a.id
|
|
and answer1.detailId = answer2.detailId) AS a1,
|
|
|
|
(SELECT
|
|
a.area_name,
|
|
round(answer3.sich*100/answer4.actual,1) AS lncxAll
|
|
FROM
|
|
(
|
|
SELECT
|
|
qd.id AS detailId,
|
|
SUBSTRING_INDEX(area.answer,',',1) AS area,
|
|
SUM( actual.answer ) AS sich
|
|
FROM
|
|
t_qcp_questionnaire_record AS actual
|
|
LEFT JOIN t_qcp_questionnaire_detail AS qd ON actual.questionnaire_detail_id = qd.id
|
|
LEFT JOIN t_qcp_questionnaire AS q ON qd.questionnaire_id = q.id
|
|
LEFT JOIN t_qcp_questionnaire_record AS area ON area.questionnaire_detail_id = qd.id
|
|
WHERE
|
|
actual.rec_status = 0
|
|
<if test="param.qid != null">
|
|
AND q.id = #{qid} AND q.rec_status = 0
|
|
</if>
|
|
AND qd.rec_status = 0
|
|
AND qd.submit_status = 1
|
|
AND actual.question_code = 'sICH-Nnt'
|
|
-- 地区
|
|
AND `area`.rec_status = 0
|
|
AND `area`.question_code = 'CITY-COUNTY'
|
|
GROUP BY SUBSTRING_INDEX(area.answer,',',1)
|
|
) AS answer3,
|
|
(
|
|
SELECT
|
|
qd.id AS detailId,
|
|
SUM( actual.answer ) AS actual
|
|
FROM
|
|
t_qcp_questionnaire_record AS actual
|
|
LEFT JOIN t_qcp_questionnaire_detail AS qd ON actual.questionnaire_detail_id = qd.id
|
|
LEFT JOIN t_qcp_questionnaire AS q ON qd.questionnaire_id = q.id
|
|
LEFT JOIN t_qcp_questionnaire_record AS area ON area.questionnaire_detail_id = qd.id
|
|
WHERE
|
|
actual.rec_status = 0
|
|
<if test="param.qid != null">
|
|
AND q.id = #{qid} AND q.rec_status = 0
|
|
</if>
|
|
AND qd.rec_status = 0
|
|
AND qd.submit_status = 1
|
|
AND actual.question_code = 'actual-Nnt'
|
|
-- 地区
|
|
AND `area`.rec_status = 0
|
|
AND `area`.question_code = 'CITY-COUNTY'
|
|
GROUP BY SUBSTRING_INDEX(area.answer,',',1)
|
|
) AS answer4,
|
|
t_area AS a
|
|
WHERE
|
|
answer3.area = a.id
|
|
and answer3.detailId = answer4.detailId) AS a2
|
|
WHERE a1.area_name = a2.area_name
|
|
</select>
|
|
|
|
<select id="sichDataForHospital" resultType="com.ccsens.carbasics.bean.vo.StatisticsVo$SichData">
|
|
SELECT
|
|
answer1.`name` AS name,
|
|
IFNULL(round(answer1.sich*100/answer2.actual+0.001,1),0.0) AS sichFsl,
|
|
answer1.sich AS sICHNnt
|
|
FROM
|
|
(
|
|
SELECT
|
|
hospital.answer AS name,
|
|
qd.id AS detailId,
|
|
SUBSTRING_INDEX(area.answer,',',1) AS area,
|
|
actual.answer AS sich
|
|
FROM
|
|
t_qcp_questionnaire_record AS actual
|
|
LEFT JOIN t_qcp_questionnaire_detail AS qd ON actual.questionnaire_detail_id = qd.id
|
|
LEFT JOIN t_qcp_questionnaire AS q ON qd.questionnaire_id = q.id
|
|
LEFT JOIN t_qcp_questionnaire_record AS `level` ON `level`.questionnaire_detail_id = qd.id
|
|
LEFT JOIN t_qcp_questionnaire_record AS area ON area.questionnaire_detail_id = qd.id
|
|
LEFT JOIN t_qcp_questionnaire_record AS hospital ON hospital.questionnaire_detail_id = qd.id
|
|
WHERE
|
|
actual.rec_status = 0
|
|
<if test="param.qid != null">
|
|
AND q.id = #{qid} AND q.rec_status = 0
|
|
</if>
|
|
AND qd.rec_status = 0
|
|
AND qd.submit_status = 1
|
|
AND actual.question_code = 'sICH-Nnt'
|
|
<if test="param.queryLevel == 0">
|
|
-- 等级
|
|
AND `level`.rec_status = 0
|
|
AND `level`.question_code = 'HOS-LEVEL'
|
|
AND `level`.answer = '三级'
|
|
</if>
|
|
<if test="param.queryLevel == 1">
|
|
-- 等级
|
|
AND `level`.rec_status = 0
|
|
AND `level`.question_code = 'HOS-LEVEL'
|
|
AND `level`.answer = '二级'
|
|
</if>
|
|
-- 地区
|
|
AND `area`.rec_status = 0
|
|
AND `area`.question_code = 'CITY-COUNTY'
|
|
AND SUBSTRING_INDEX(area.answer,',',1) = #{param.areaId}
|
|
-- 医院
|
|
AND hospital.rec_status = 0
|
|
AND hospital.question_code = 'HOS-NAME'
|
|
) AS answer1,
|
|
(
|
|
SELECT
|
|
qd.id AS detailId,
|
|
actual.answer AS actual
|
|
FROM
|
|
t_qcp_questionnaire_record AS actual
|
|
LEFT JOIN t_qcp_questionnaire_detail AS qd ON actual.questionnaire_detail_id = qd.id
|
|
LEFT JOIN t_qcp_questionnaire AS q ON qd.questionnaire_id = q.id
|
|
LEFT JOIN t_qcp_questionnaire_record AS `level` ON `level`.questionnaire_detail_id = qd.id
|
|
LEFT JOIN t_qcp_questionnaire_record AS area ON area.questionnaire_detail_id = qd.id
|
|
WHERE
|
|
actual.rec_status = 0
|
|
<if test="param.qid != null">
|
|
AND q.id = #{qid} AND q.rec_status = 0
|
|
</if>
|
|
AND qd.rec_status = 0
|
|
AND qd.submit_status = 1
|
|
AND actual.question_code = 'actual-Nnt'
|
|
<if test="param.queryLevel == 0">
|
|
-- 等级
|
|
AND `level`.rec_status = 0
|
|
AND `level`.question_code = 'HOS-LEVEL'
|
|
AND `level`.answer = '三级'
|
|
</if>
|
|
<if test="param.queryLevel == 1">
|
|
-- 等级
|
|
AND `level`.rec_status = 0
|
|
AND `level`.question_code = 'HOS-LEVEL'
|
|
AND `level`.answer = '二级'
|
|
</if>
|
|
-- 地区
|
|
AND `area`.rec_status = 0
|
|
AND `area`.question_code = 'CITY-COUNTY'
|
|
AND SUBSTRING_INDEX(area.answer,',',1) = #{param.areaId}
|
|
) AS answer2,
|
|
t_area AS a
|
|
WHERE
|
|
answer1.area = a.id
|
|
and answer1.detailId = answer2.detailId
|
|
</select>
|
|
|
|
<select id="xgzlTotal" resultType="com.ccsens.carbasics.bean.vo.StatisticsVo$XgzlTotal">
|
|
SELECT
|
|
answer1.qjxgnzlzs,
|
|
answer2.sjxgnzlzrs AS fqjxgnzlzs,
|
|
(answer1.qjxgnzlzs+answer2.sjxgnzlzrs) AS xgnzlzs,
|
|
round(answer1.qjxgnzlzs*100/answer3.rshfhxgnzlzzzrs,1) AS qjxgnzll,
|
|
round(answer2.sjxgnzlzrs*100/answer4.fhxgnzlzzzrs,1) AS fqjxgnzll,
|
|
round((answer1.qjxgnzlzs+answer2.sjxgnzlzrs)*100/(answer3.rshfhxgnzlzzzrs+answer4.fhxgnzlzzzrs),1) AS zxgnzll
|
|
FROM
|
|
(
|
|
SELECT
|
|
SUM(actual.answer) AS qjxgnzlzs
|
|
FROM
|
|
t_qcp_questionnaire_record AS actual
|
|
LEFT JOIN t_qcp_questionnaire_detail AS qd ON actual.questionnaire_detail_id = qd.id
|
|
LEFT JOIN t_qcp_questionnaire AS q ON qd.questionnaire_id = q.id
|
|
LEFT JOIN t_qcp_questionnaire_record AS yes ON qd.id = yes.questionnaire_detail_id
|
|
WHERE
|
|
actual.rec_status = 0
|
|
<if test="qid != null">
|
|
AND q.id = #{qid} AND q.rec_status = 0
|
|
</if>
|
|
AND qd.rec_status = 0
|
|
AND qd.submit_status = 1
|
|
AND actual.question_code = 'XGZL-sICH-Nnt'
|
|
AND yes.rec_status = 0
|
|
AND yes.question_code = 'XGZL'
|
|
AND yes.answer = '是'
|
|
) AS answer1,
|
|
(
|
|
SELECT
|
|
SUM(actual.answer) AS sjxgnzlzrs
|
|
FROM
|
|
t_qcp_questionnaire_record AS actual
|
|
LEFT JOIN t_qcp_questionnaire_detail AS qd ON actual.questionnaire_detail_id = qd.id
|
|
LEFT JOIN t_qcp_questionnaire AS q ON qd.questionnaire_id = q.id
|
|
LEFT JOIN t_qcp_questionnaire_record AS yes ON qd.id = yes.questionnaire_detail_id
|
|
WHERE
|
|
actual.rec_status = 0
|
|
<if test="qid != null">
|
|
AND q.id = #{qid} AND q.rec_status = 0
|
|
</if>
|
|
AND qd.rec_status = 0
|
|
AND qd.submit_status = 1
|
|
AND actual.question_code = 'XGZL-actual-Nnt'
|
|
AND yes.rec_status = 0
|
|
AND yes.question_code = 'XGZL'
|
|
AND yes.answer = '是'
|
|
) AS answer2,
|
|
(
|
|
SELECT
|
|
SUM(actual.answer) AS rshfhxgnzlzzzrs
|
|
FROM
|
|
t_qcp_questionnaire_record AS actual
|
|
LEFT JOIN t_qcp_questionnaire_detail AS qd ON actual.questionnaire_detail_id = qd.id
|
|
LEFT JOIN t_qcp_questionnaire AS q ON qd.questionnaire_id = q.id
|
|
LEFT JOIN t_qcp_questionnaire_record AS yes ON qd.id = yes.questionnaire_detail_id
|
|
WHERE
|
|
actual.rec_status = 0
|
|
<if test="qid != null">
|
|
AND q.id = #{qid} AND q.rec_status = 0
|
|
</if>
|
|
AND qd.rec_status = 0
|
|
AND qd.submit_status = 1
|
|
AND actual.question_code = 'XGZL-RSH-Nnt'
|
|
AND yes.rec_status = 0
|
|
AND yes.question_code = 'XGZL'
|
|
AND yes.answer = '是'
|
|
) AS answer3,
|
|
(
|
|
SELECT
|
|
SUM(actual.answer) AS fhxgnzlzzzrs
|
|
FROM
|
|
t_qcp_questionnaire_record AS actual
|
|
LEFT JOIN t_qcp_questionnaire_detail AS qd ON actual.questionnaire_detail_id = qd.id
|
|
LEFT JOIN t_qcp_questionnaire AS q ON qd.questionnaire_id = q.id
|
|
LEFT JOIN t_qcp_questionnaire_record AS yes ON qd.id = yes.questionnaire_detail_id
|
|
WHERE
|
|
actual.rec_status = 0
|
|
<if test="qid != null">
|
|
AND q.id = #{qid} AND q.rec_status = 0
|
|
</if>
|
|
AND qd.rec_status = 0
|
|
AND qd.submit_status = 1
|
|
AND actual.question_code = 'XGZL-FIT-Nnt'
|
|
AND yes.rec_status = 0
|
|
AND yes.question_code = 'XGZL'
|
|
AND yes.answer = '是'
|
|
) AS answer4
|
|
</select>
|
|
|
|
<select id="xgzlDataForCity" resultType="com.ccsens.carbasics.bean.vo.StatisticsVo$XgzlData">
|
|
SELECT
|
|
a1.areaId,
|
|
a1.name,
|
|
a1.fqjxgnzlzs,
|
|
a1.qjxgnzlzs,
|
|
a1.zxgnzll AS zxgnzllCity,
|
|
a2.zxgnzllCity AS zxgnzll
|
|
FROM
|
|
(SELECT
|
|
a.id AS areaId,
|
|
a.area_name AS name,
|
|
answer1.qjxgnzlzs,
|
|
answer2.fqjxgnzlzs,
|
|
IFNULL(round((answer1.qjxgnzlzs+answer2.fqjxgnzlzs)*100/(answer3.rshfhxgnzlzzzrs+answer4.fhxgnzlzzzrs),1),0.0)
|
|
AS zxgnzll
|
|
FROM
|
|
(
|
|
SELECT
|
|
SUBSTRING_INDEX(area.answer,',',1) AS area,
|
|
SUM(actual.answer) AS qjxgnzlzs
|
|
FROM
|
|
t_qcp_questionnaire_record AS actual
|
|
LEFT JOIN t_qcp_questionnaire_detail AS qd ON actual.questionnaire_detail_id = qd.id
|
|
LEFT JOIN t_qcp_questionnaire AS q ON qd.questionnaire_id = q.id
|
|
LEFT JOIN t_qcp_questionnaire_record AS yes ON qd.id = yes.questionnaire_detail_id
|
|
LEFT JOIN t_qcp_questionnaire_record AS level ON qd.id = level.questionnaire_detail_id
|
|
LEFT JOIN t_qcp_questionnaire_record AS area ON qd.id = area.questionnaire_detail_id
|
|
WHERE
|
|
actual.rec_status = 0
|
|
<if test="param.qid != null">
|
|
AND q.id = #{qid} AND q.rec_status = 0
|
|
</if>
|
|
AND qd.rec_status = 0
|
|
AND qd.submit_status = 1
|
|
AND actual.question_code = 'XGZL-sICH-Nnt'
|
|
AND yes.rec_status = 0
|
|
AND yes.question_code = 'XGZL'
|
|
AND yes.answer = '是'
|
|
<if test="param.queryLevel == 0">-- 等级
|
|
AND `level`.
|
|
rec_status = 0
|
|
AND `level`.question_code = 'HOS-LEVEL'
|
|
AND `level`.answer = '三级'
|
|
</if>
|
|
<if test="param.queryLevel == 1">
|
|
-- 等级
|
|
AND `level`.rec_status = 0
|
|
AND `level`.question_code = 'HOS-LEVEL'
|
|
AND `level`.answer = '二级'
|
|
</if>
|
|
AND area.rec_status = 0
|
|
AND area.question_code = 'CITY-COUNTY'
|
|
GROUP BY SUBSTRING_INDEX(area.answer,',',1)
|
|
) AS answer1,
|
|
(
|
|
SELECT
|
|
SUBSTRING_INDEX(area.answer,',',1) AS area,
|
|
SUM(actual.answer) AS fqjxgnzlzs
|
|
FROM
|
|
t_qcp_questionnaire_record AS actual
|
|
LEFT JOIN t_qcp_questionnaire_detail AS qd ON actual.questionnaire_detail_id = qd.id
|
|
LEFT JOIN t_qcp_questionnaire AS q ON qd.questionnaire_id = q.id
|
|
LEFT JOIN t_qcp_questionnaire_record AS yes ON qd.id = yes.questionnaire_detail_id
|
|
LEFT JOIN t_qcp_questionnaire_record AS level ON qd.id = level.questionnaire_detail_id
|
|
LEFT JOIN t_qcp_questionnaire_record AS area ON qd.id = area.questionnaire_detail_id
|
|
WHERE
|
|
actual.rec_status = 0
|
|
<if test="param.qid != null">
|
|
AND q.id = #{qid} AND q.rec_status = 0
|
|
</if>
|
|
AND qd.rec_status = 0
|
|
AND qd.submit_status = 1
|
|
AND actual.question_code = 'XGZL-actual-Nnt'
|
|
AND yes.rec_status = 0
|
|
AND yes.question_code = 'XGZL'
|
|
AND yes.answer = '是'
|
|
<if test="param.queryLevel == 0">
|
|
-- 等级
|
|
AND `level`.rec_status = 0
|
|
AND `level`.question_code = 'HOS-LEVEL'
|
|
AND `level`.answer = '三级'
|
|
</if>
|
|
<if test="param.queryLevel == 1">
|
|
-- 等级
|
|
AND `level`.rec_status = 0
|
|
AND `level`.question_code = 'HOS-LEVEL'
|
|
AND `level`.answer = '二级'
|
|
</if>
|
|
AND area.rec_status = 0
|
|
AND area.question_code = 'CITY-COUNTY'
|
|
GROUP BY SUBSTRING_INDEX(area.answer,',',1)
|
|
) AS answer2,
|
|
(
|
|
SELECT
|
|
SUBSTRING_INDEX(area.answer,',',1) AS area,
|
|
SUM(actual.answer) AS rshfhxgnzlzzzrs
|
|
FROM
|
|
t_qcp_questionnaire_record AS actual
|
|
LEFT JOIN t_qcp_questionnaire_detail AS qd ON actual.questionnaire_detail_id = qd.id
|
|
LEFT JOIN t_qcp_questionnaire AS q ON qd.questionnaire_id = q.id
|
|
LEFT JOIN t_qcp_questionnaire_record AS yes ON qd.id = yes.questionnaire_detail_id
|
|
LEFT JOIN t_qcp_questionnaire_record AS level ON qd.id = level.questionnaire_detail_id
|
|
LEFT JOIN t_qcp_questionnaire_record AS area ON qd.id = area.questionnaire_detail_id
|
|
WHERE
|
|
actual.rec_status = 0
|
|
<if test="param.qid != null">
|
|
AND q.id = #{qid} AND q.rec_status = 0
|
|
</if>
|
|
AND qd.rec_status = 0
|
|
AND qd.submit_status = 1
|
|
AND actual.question_code = 'XGZL-RSH-Nnt'
|
|
AND yes.rec_status = 0
|
|
AND yes.question_code = 'XGZL'
|
|
AND yes.answer = '是'
|
|
<if test="param.queryLevel == 0">
|
|
-- 等级
|
|
AND `level`.rec_status = 0
|
|
AND `level`.question_code = 'HOS-LEVEL'
|
|
AND `level`.answer = '三级'
|
|
</if>
|
|
<if test="param.queryLevel == 1">
|
|
-- 等级
|
|
AND `level`.rec_status = 0
|
|
AND `level`.question_code = 'HOS-LEVEL'
|
|
AND `level`.answer = '二级'
|
|
</if>
|
|
AND area.rec_status = 0
|
|
AND area.question_code = 'CITY-COUNTY'
|
|
GROUP BY SUBSTRING_INDEX(area.answer,',',1)
|
|
) AS answer3,
|
|
(
|
|
SELECT
|
|
SUBSTRING_INDEX(area.answer,',',1) AS area,
|
|
SUM(actual.answer) AS fhxgnzlzzzrs
|
|
FROM
|
|
t_qcp_questionnaire_record AS actual
|
|
LEFT JOIN t_qcp_questionnaire_detail AS qd ON actual.questionnaire_detail_id = qd.id
|
|
LEFT JOIN t_qcp_questionnaire AS q ON qd.questionnaire_id = q.id
|
|
LEFT JOIN t_qcp_questionnaire_record AS yes ON qd.id = yes.questionnaire_detail_id
|
|
LEFT JOIN t_qcp_questionnaire_record AS level ON qd.id = level.questionnaire_detail_id
|
|
LEFT JOIN t_qcp_questionnaire_record AS area ON qd.id = area.questionnaire_detail_id
|
|
WHERE
|
|
actual.rec_status = 0
|
|
<if test="param.qid != null">
|
|
AND q.id = #{qid} AND q.rec_status = 0
|
|
</if>
|
|
AND qd.rec_status = 0
|
|
AND qd.submit_status = 1
|
|
AND actual.question_code = 'XGZL-FIT-Nnt'
|
|
AND yes.rec_status = 0
|
|
AND yes.question_code = 'XGZL'
|
|
AND yes.answer = '是'
|
|
<if test="param.queryLevel == 0">
|
|
-- 等级
|
|
AND `level`.rec_status = 0
|
|
AND `level`.question_code = 'HOS-LEVEL'
|
|
AND `level`.answer = '三级'
|
|
</if>
|
|
<if test="param.queryLevel == 1">
|
|
-- 等级
|
|
AND `level`.rec_status = 0
|
|
AND `level`.question_code = 'HOS-LEVEL'
|
|
AND `level`.answer = '二级'
|
|
</if>
|
|
AND area.rec_status = 0
|
|
AND area.question_code = 'CITY-COUNTY'
|
|
GROUP BY SUBSTRING_INDEX(area.answer,',',1)
|
|
) AS answer4,
|
|
t_area AS a
|
|
WHERE a.id = answer1.area
|
|
AND answer1.area = answer2.area
|
|
AND answer2.area = answer3.area
|
|
AND answer3.area = answer4.area
|
|
) AS a1
|
|
LEFT JOIN
|
|
(
|
|
SELECT
|
|
a.id,
|
|
a.area_name,
|
|
IFNULL(round((SUM(answer1.answer)+SUM(answer2.answer))*100/(SUM(answer3.answer)+SUM(answer4.answer)),1),0.0) AS zxgnzllCity
|
|
FROM
|
|
t_qcp_questionnaire_record AS answer1
|
|
LEFT JOIN t_qcp_questionnaire_detail AS qd ON answer1.questionnaire_detail_id = qd.id
|
|
LEFT JOIN t_qcp_questionnaire AS q ON qd.questionnaire_id = q.id
|
|
LEFT JOIN t_qcp_questionnaire_record AS yes ON qd.id = yes.questionnaire_detail_id
|
|
LEFT JOIN t_qcp_questionnaire_record AS area ON qd.id = area.questionnaire_detail_id
|
|
LEFT JOIN t_area AS a ON SUBSTRING_INDEX(area.answer,',',1) = a.id
|
|
LEFT JOIN t_qcp_questionnaire_record AS hospital ON qd.id = hospital.questionnaire_detail_id
|
|
LEFT JOIN t_qcp_questionnaire_record AS answer2 ON qd.id = answer2.questionnaire_detail_id
|
|
LEFT JOIN t_qcp_questionnaire_record AS answer3 ON qd.id = answer3.questionnaire_detail_id
|
|
LEFT JOIN t_qcp_questionnaire_record AS answer4 ON qd.id = answer4.questionnaire_detail_id
|
|
WHERE
|
|
answer1.rec_status = 0
|
|
<if test="param.qid != null">
|
|
AND q.id = #{qid} AND q.rec_status = 0
|
|
</if>
|
|
AND qd.rec_status = 0
|
|
AND qd.submit_status = 1
|
|
AND answer1.question_code = 'XGZL-sICH-Nnt'
|
|
AND answer2.rec_status = 0
|
|
AND answer2.question_code = 'XGZL-actual-Nnt'
|
|
AND answer3.rec_status = 0
|
|
AND answer3.question_code = 'XGZL-RSH-Nnt'
|
|
AND answer4.rec_status = 0
|
|
AND answer4.question_code = 'XGZL-FIT-Nnt'
|
|
AND yes.rec_status = 0
|
|
AND yes.question_code = 'XGZL'
|
|
AND yes.answer = '是'
|
|
AND hospital.rec_status = 0
|
|
AND hospital.question_code = 'HOS-NAME'
|
|
AND area.rec_status = 0
|
|
AND area.question_code = 'CITY-COUNTY'
|
|
GROUP BY SUBSTRING_INDEX(area.answer,',',1)
|
|
) AS a2 ON a1.areaId = a2.id
|
|
ORDER BY (a1.qjxgnzlzs+a1.fqjxgnzlzs) DESC,zxgnzll DESC
|
|
</select>
|
|
|
|
<select id="xgzlDataForHospital" resultType="com.ccsens.carbasics.bean.vo.StatisticsVo$XgzlData">
|
|
SELECT
|
|
hospital.answer AS `name`,
|
|
answer1.answer AS qjxgnzlzs,
|
|
answer2.answer AS fqjxgnzlzs,
|
|
IFNULL(round((answer1.answer+answer2.answer)*100/(answer3.answer+answer4.answer),1),0.0) AS zxgnzll
|
|
FROM
|
|
t_qcp_questionnaire_record AS answer1
|
|
LEFT JOIN t_qcp_questionnaire_detail AS qd ON answer1.questionnaire_detail_id = qd.id
|
|
LEFT JOIN t_qcp_questionnaire AS q ON qd.questionnaire_id = q.id
|
|
LEFT JOIN t_qcp_questionnaire_record AS yes ON qd.id = yes.questionnaire_detail_id
|
|
LEFT JOIN t_qcp_questionnaire_record AS level ON qd.id = level.questionnaire_detail_id
|
|
LEFT JOIN t_qcp_questionnaire_record AS area ON qd.id = area.questionnaire_detail_id
|
|
LEFT JOIN t_area AS a ON a.id = SUBSTRING_INDEX(area.answer,',',1)
|
|
LEFT JOIN t_qcp_questionnaire_record AS hospital ON qd.id = hospital.questionnaire_detail_id
|
|
LEFT JOIN t_qcp_questionnaire_record AS answer2 ON qd.id = answer2.questionnaire_detail_id
|
|
LEFT JOIN t_qcp_questionnaire_record AS answer3 ON qd.id = answer3.questionnaire_detail_id
|
|
LEFT JOIN t_qcp_questionnaire_record AS answer4 ON qd.id = answer4.questionnaire_detail_id
|
|
WHERE
|
|
answer1.rec_status = 0
|
|
<if test="param.qid != null">
|
|
AND q.id = #{qid} AND q.rec_status = 0
|
|
</if>
|
|
AND qd.rec_status = 0
|
|
AND qd.submit_status = 1
|
|
AND answer1.question_code = 'XGZL-sICH-Nnt'
|
|
AND answer2.rec_status = 0
|
|
AND answer2.question_code = 'XGZL-actual-Nnt'
|
|
AND answer3.rec_status = 0
|
|
AND answer3.question_code = 'XGZL-RSH-Nnt'
|
|
AND answer4.rec_status = 0
|
|
AND answer4.question_code = 'XGZL-FIT-Nnt'
|
|
AND yes.rec_status = 0
|
|
AND yes.question_code = 'XGZL'
|
|
AND yes.answer = '是'
|
|
AND level.rec_status = 0
|
|
AND level.question_code = 'HOS-LEVEL'
|
|
<if test="param.queryLevel == 0">
|
|
AND level.answer = '三级'
|
|
</if>
|
|
<if test="param.queryLevel == 1">
|
|
AND level.answer = '二级'
|
|
</if>
|
|
AND hospital.rec_status = 0
|
|
AND hospital.question_code = 'HOS-NAME'
|
|
AND area.rec_status = 0
|
|
AND area.question_code = 'CITY-COUNTY'
|
|
AND SUBSTRING_INDEX(area.answer,',',1) = #{param.areaId}
|
|
ORDER BY (answer1.answer+answer2.answer) DESC,zxgnzll DESC
|
|
</select>
|
|
|
|
<select id="xgzlSynopsis" resultType="com.ccsens.carbasics.bean.vo.StatisticsVo$XgzlSynopsis">
|
|
SELECT
|
|
<if test="param.queryType == 1">
|
|
a.area_name AS `cityName`,
|
|
</if>
|
|
LEFT(level.answer,1) AS level,
|
|
round((SUM(answer1.answer)+SUM(answer2.answer))*100/(SUM(answer3.answer)+SUM(answer4.answer)),1) AS zxgnzll
|
|
FROM
|
|
t_qcp_questionnaire_record AS answer1
|
|
LEFT JOIN t_qcp_questionnaire_detail AS qd ON answer1.questionnaire_detail_id = qd.id
|
|
LEFT JOIN t_qcp_questionnaire AS q ON qd.questionnaire_id = q.id
|
|
LEFT JOIN t_qcp_questionnaire_record AS answer2 ON qd.id = answer2.questionnaire_detail_id
|
|
LEFT JOIN t_qcp_questionnaire_record AS answer3 ON qd.id = answer3.questionnaire_detail_id
|
|
LEFT JOIN t_qcp_questionnaire_record AS answer4 ON qd.id = answer4.questionnaire_detail_id
|
|
LEFT JOIN t_qcp_questionnaire_record AS yes ON qd.id = yes.questionnaire_detail_id
|
|
LEFT JOIN t_qcp_questionnaire_record AS level ON qd.id = level.questionnaire_detail_id
|
|
<if test="param.queryType == 1">
|
|
LEFT JOIN t_qcp_questionnaire_record AS area ON qd.id = area.questionnaire_detail_id
|
|
LEFT JOIN t_area AS a ON a.id = SUBSTRING_INDEX(area.answer,',',1)
|
|
</if>
|
|
WHERE
|
|
answer1.rec_status = 0
|
|
<if test="param.qid != null">
|
|
AND q.id = #{qid} AND q.rec_status = 0
|
|
</if>
|
|
AND qd.rec_status = 0
|
|
AND qd.submit_status = 1
|
|
AND answer1.question_code = 'XGZL-sICH-Nnt'
|
|
AND answer2.rec_status = 0
|
|
AND answer2.question_code = 'XGZL-actual-Nnt'
|
|
AND answer3.rec_status = 0
|
|
AND answer3.question_code = 'XGZL-RSH-Nnt'
|
|
AND answer4.rec_status = 0
|
|
AND answer4.question_code = 'XGZL-FIT-Nnt'
|
|
AND yes.rec_status = 0
|
|
AND yes.question_code = 'XGZL'
|
|
AND yes.answer = '是'
|
|
AND level.rec_status = 0
|
|
AND level.question_code = 'HOS-LEVEL'
|
|
<if test="param.queryLevel == 0">
|
|
AND level.answer = '三级'
|
|
</if>
|
|
<if test="param.queryLevel == 1">
|
|
AND level.answer = '二级'
|
|
</if>
|
|
<if test="param.queryType == 1">
|
|
AND area.rec_status = 0
|
|
AND area.question_code = 'CITY-COUNTY'
|
|
AND SUBSTRING_INDEX(area.answer,',',1) = #{param.areaId}
|
|
</if>
|
|
</select>
|
|
|
|
<select id="dptTotal" resultType="com.ccsens.carbasics.bean.vo.StatisticsVo$DptTotal">
|
|
SELECT
|
|
SUM(dpt59.answer)+SUM(dpt89.answer) AS dpt89,
|
|
SUM(dpt59.answer) AS dpt59,
|
|
round((SUM(dpt59.answer)+SUM(dpt89.answer))*100/(SUM(dpt59.answer)+SUM(dpt89.answer)+SUM(dpt91.answer)),1) AS dpt89Ratio,
|
|
round(SUM(dpt59.answer)*100/(SUM(dpt59.answer)+SUM(dpt89.answer)+SUM(dpt91.answer)),1) AS dpt59Ratio
|
|
FROM
|
|
t_qcp_questionnaire_record AS dpt59
|
|
LEFT JOIN t_qcp_questionnaire_detail AS d ON dpt59.questionnaire_detail_id = d.id
|
|
LEFT JOIN t_qcp_questionnaire AS q ON d.questionnaire_id = q.id
|
|
LEFT JOIN t_qcp_questionnaire_record AS dpt89 ON dpt89.questionnaire_detail_id = d.id
|
|
LEFT JOIN t_qcp_questionnaire_record AS dpt91 ON dpt91.questionnaire_detail_id = d.id
|
|
LEFT JOIN t_qcp_questionnaire_record AS xgzl ON xgzl.questionnaire_detail_id = d.id
|
|
WHERE
|
|
dpt59.rec_status = 0
|
|
<if test="qid != null">
|
|
AND q.id = #{qid} AND q.rec_status = 0
|
|
</if>
|
|
AND dpt59.question_code = 'XGZL-DPT-60'
|
|
AND d.rec_status = 0
|
|
AND d.submit_status = 1
|
|
AND dpt89.rec_status = 0
|
|
AND dpt89.question_code = 'XGZL-DPT-89'
|
|
AND dpt91.rec_status = 0
|
|
AND dpt91.question_code = 'XGZL-DPT-91'
|
|
AND xgzl.rec_status = 0 AND xgzl.question_code = 'XGZL' AND xgzl.answer = '是'
|
|
</select>
|
|
|
|
<select id="dptSynopsis" resultType="com.ccsens.carbasics.bean.vo.StatisticsVo$DptSynopsis">
|
|
SELECT
|
|
<if test="param.queryType == 1">
|
|
a.area_name AS cityName,
|
|
</if>
|
|
LEFT(level.answer,1) AS level,
|
|
round((SUM(dpt59.answer)+SUM(dpt89.answer))*100/(SUM(dpt59.answer)+SUM(dpt89.answer)+SUM(dpt91.answer)),1) AS dpt89Ratio,
|
|
round(SUM(dpt59.answer)*100/(SUM(dpt59.answer)+SUM(dpt89.answer)+SUM(dpt91.answer)),1) AS dpt59Ratio
|
|
FROM
|
|
t_qcp_questionnaire_record AS dpt59
|
|
LEFT JOIN t_qcp_questionnaire_detail AS d ON dpt59.questionnaire_detail_id = d.id
|
|
LEFT JOIN t_qcp_questionnaire AS q ON d.questionnaire_id = q.id
|
|
LEFT JOIN t_qcp_questionnaire_record AS dpt89 ON dpt89.questionnaire_detail_id = d.id
|
|
LEFT JOIN t_qcp_questionnaire_record AS dpt91 ON dpt91.questionnaire_detail_id = d.id
|
|
LEFT JOIN t_qcp_questionnaire_record AS `level` ON `level`.questionnaire_detail_id = d.id
|
|
LEFT JOIN t_qcp_questionnaire_record AS xgzl ON xgzl.questionnaire_detail_id = d.id
|
|
LEFT JOIN t_qcp_questionnaire_record AS area ON area.questionnaire_detail_id = d.id
|
|
LEFT JOIN t_area AS a ON a.id = SUBSTRING_INDEX(area.answer,',',1)
|
|
WHERE dpt59.rec_status = 0 AND dpt59.question_code = 'XGZL-DPT-60'
|
|
<if test="param.qid != null">
|
|
AND q.id = #{qid} AND q.rec_status = 0
|
|
</if>
|
|
AND d.rec_status = 0 AND d.submit_status = 1
|
|
AND dpt89.rec_status = 0
|
|
AND dpt89.question_code = 'XGZL-DPT-89'
|
|
AND dpt91.rec_status = 0
|
|
AND dpt91.question_code = 'XGZL-DPT-91'
|
|
AND `level`.rec_status = 0 AND `level`.question_code = 'HOS-LEVEL'
|
|
<if test="param.queryLevel == 0">
|
|
AND `level`.answer = '三级'
|
|
</if>
|
|
<if test="param.queryLevel == 1">
|
|
AND `level`.answer = '二级'
|
|
</if>
|
|
AND xgzl.rec_status = 0 AND xgzl.question_code = 'XGZL' AND xgzl.answer = '是'
|
|
AND area.rec_status = 0 AND area.question_code = 'CITY-COUNTY'
|
|
<if test="param.queryType == 1">
|
|
AND SUBSTRING_INDEX(area.answer,',',1) = #{param.areaId}
|
|
</if>
|
|
</select>
|
|
<select id="queryDptForCity" resultType="com.ccsens.carbasics.bean.vo.StatisticsVo$DptData">
|
|
SELECT
|
|
a1.id AS areaId,
|
|
a1.area_name AS `name`,
|
|
a1.dpt59RatioCity,
|
|
a1.dpt89RatioCity,
|
|
IFNULL(a2.dpt89Ratio,0.0) AS dpt89Ratio,
|
|
IFNULL(a2.dpt59Ratio,0.0) AS dpt59Ratio
|
|
FROM
|
|
(SELECT
|
|
a.id,
|
|
a.area_name,
|
|
IFNULL(round((SUM(dpt59.answer)+SUM(dpt89.answer))*100/(SUM(dpt59.answer)+SUM(dpt89.answer)+SUM(dpt91.answer)),1),0.0) AS dpt89RatioCity,
|
|
IFNULL(round(SUM(dpt59.answer)*100/(SUM(dpt59.answer)+SUM(dpt89.answer)+SUM(dpt91.answer)),1),0.0) AS dpt59RatioCity
|
|
FROM
|
|
t_qcp_questionnaire_record AS dpt59
|
|
LEFT JOIN t_qcp_questionnaire_detail AS d ON dpt59.questionnaire_detail_id = d.id
|
|
LEFT JOIN t_qcp_questionnaire AS q ON d.questionnaire_id = q.id
|
|
LEFT JOIN t_qcp_questionnaire_record AS dpt89 ON dpt89.questionnaire_detail_id = d.id
|
|
LEFT JOIN t_qcp_questionnaire_record AS dpt91 ON dpt91.questionnaire_detail_id = d.id
|
|
LEFT JOIN t_qcp_questionnaire_record AS xgzl ON xgzl.questionnaire_detail_id = d.id
|
|
LEFT JOIN t_qcp_questionnaire_record AS area ON area.questionnaire_detail_id = d.id
|
|
LEFT JOIN t_area AS a ON a.id = SUBSTRING_INDEX(area.answer,',',1)
|
|
WHERE
|
|
dpt59.rec_status = 0
|
|
<if test="param.qid != null">
|
|
AND q.id = #{qid} AND q.rec_status = 0
|
|
</if>
|
|
AND dpt59.question_code = 'XGZL-DPT-60'
|
|
AND d.rec_status = 0
|
|
AND d.submit_status = 1
|
|
AND dpt89.rec_status = 0
|
|
AND dpt89.question_code = 'XGZL-DPT-89'
|
|
AND dpt91.rec_status = 0
|
|
AND dpt91.question_code = 'XGZL-DPT-91'
|
|
AND xgzl.rec_status = 0
|
|
AND xgzl.question_code = 'XGZL'
|
|
AND xgzl.answer = '是'
|
|
AND area.rec_status = 0 AND area.question_code = 'CITY-COUNTY'
|
|
GROUP BY SUBSTRING_INDEX(area.answer,',',1)
|
|
) AS a1
|
|
RIGHT JOIN
|
|
(
|
|
SELECT
|
|
a.id,
|
|
a.area_name,
|
|
LEFT(level.answer,1) AS level,
|
|
IFNULL(round((SUM(dpt59.answer)+SUM(dpt89.answer))*100/(SUM(dpt59.answer)+SUM(dpt89.answer)+SUM(dpt91.answer)),1),0.0) AS dpt89Ratio,
|
|
IFNULL(round(SUM(dpt59.answer)*100/(SUM(dpt59.answer)+SUM(dpt89.answer)+SUM(dpt91.answer)),1),0.0) AS dpt59Ratio
|
|
FROM
|
|
t_qcp_questionnaire_record AS dpt59
|
|
LEFT JOIN t_qcp_questionnaire_detail AS d ON dpt59.questionnaire_detail_id = d.id
|
|
LEFT JOIN t_qcp_questionnaire AS q ON d.questionnaire_id = q.id
|
|
LEFT JOIN t_qcp_questionnaire_record AS dpt89 ON dpt89.questionnaire_detail_id = d.id
|
|
LEFT JOIN t_qcp_questionnaire_record AS dpt91 ON dpt91.questionnaire_detail_id = d.id
|
|
LEFT JOIN t_qcp_questionnaire_record AS xgzl ON xgzl.questionnaire_detail_id = d.id
|
|
LEFT JOIN t_qcp_questionnaire_record AS `level` ON `level`.questionnaire_detail_id = d.id
|
|
LEFT JOIN t_qcp_questionnaire_record AS area ON area.questionnaire_detail_id = d.id
|
|
LEFT JOIN t_area AS a ON a.id = SUBSTRING_INDEX(area.answer,',',1)
|
|
WHERE
|
|
dpt59.rec_status = 0
|
|
<if test="param.qid != null">
|
|
AND q.id = #{qid} AND q.rec_status = 0
|
|
</if>
|
|
AND dpt59.question_code = 'XGZL-DPT-60'
|
|
AND d.rec_status = 0
|
|
AND d.submit_status = 1
|
|
AND dpt89.rec_status = 0
|
|
AND dpt89.question_code = 'XGZL-DPT-89'
|
|
AND dpt91.rec_status = 0
|
|
AND dpt91.question_code = 'XGZL-DPT-91'
|
|
AND xgzl.rec_status = 0
|
|
AND xgzl.question_code = 'XGZL'
|
|
AND xgzl.answer = '是'
|
|
AND `level`.rec_status = 0 AND `level`.question_code = 'HOS-LEVEL'
|
|
<if test="param.queryLevel == 0">
|
|
AND `level`.answer = '三级'
|
|
</if>
|
|
<if test="param.queryLevel == 1">
|
|
AND `level`.answer = '二级'
|
|
</if>
|
|
AND area.rec_status = 0 AND area.question_code = 'CITY-COUNTY'
|
|
GROUP BY SUBSTRING_INDEX(area.answer,',',1)
|
|
) AS a2 ON a1.id = a2.id
|
|
ORDER BY a2.dpt89Ratio DESC
|
|
</select>
|
|
|
|
<select id="queryDptForHospital" resultType="com.ccsens.carbasics.bean.vo.StatisticsVo$DptData">
|
|
SELECT
|
|
hospital.answer AS `name`,
|
|
LEFT(level.answer,1) AS level,
|
|
IFNULL(round((dpt59.answer+dpt89.answer)*100/(dpt59.answer+dpt89.answer+dpt91.answer)+0.001,1),0.0) AS dpt89Ratio,
|
|
IFNULL(round(dpt59.answer*100/(dpt59.answer+dpt89.answer+dpt91.answer),1)+0.001,0.0) AS dpt59Ratio,
|
|
dpt59.answer AS dpt59Number,
|
|
dpt89.answer AS dpt89Number,
|
|
dpt91.answer AS dpt91Number
|
|
FROM
|
|
t_qcp_questionnaire_record AS dpt59
|
|
LEFT JOIN t_qcp_questionnaire_detail AS d ON dpt59.questionnaire_detail_id = d.id
|
|
LEFT JOIN t_qcp_questionnaire AS q ON d.questionnaire_id = q.id
|
|
LEFT JOIN t_qcp_questionnaire_record AS dpt89 ON dpt89.questionnaire_detail_id = d.id
|
|
LEFT JOIN t_qcp_questionnaire_record AS dpt91 ON dpt91.questionnaire_detail_id = d.id
|
|
LEFT JOIN t_qcp_questionnaire_record AS xgzl ON xgzl.questionnaire_detail_id = d.id
|
|
LEFT JOIN t_qcp_questionnaire_record AS `level` ON `level`.questionnaire_detail_id = d.id
|
|
LEFT JOIN t_qcp_questionnaire_record AS hospital ON hospital.questionnaire_detail_id = d.id
|
|
LEFT JOIN t_qcp_questionnaire_record AS area ON area.questionnaire_detail_id = d.id
|
|
LEFT JOIN t_area AS a ON a.id = SUBSTRING_INDEX(area.answer,',',1)
|
|
WHERE
|
|
dpt59.rec_status = 0
|
|
<if test="param.qid != null">
|
|
AND q.id = #{qid} AND q.rec_status = 0
|
|
</if>
|
|
AND dpt59.question_code = 'XGZL-DPT-60'
|
|
AND d.rec_status = 0
|
|
AND d.submit_status = 1
|
|
AND dpt89.rec_status = 0
|
|
AND dpt89.question_code = 'XGZL-DPT-89'
|
|
AND dpt91.rec_status = 0
|
|
AND dpt91.question_code = 'XGZL-DPT-91'
|
|
AND xgzl.rec_status = 0
|
|
AND xgzl.question_code = 'XGZL'
|
|
AND xgzl.answer = '是'
|
|
AND hospital.rec_status = 0
|
|
AND hospital.question_code = 'HOS-NAME'
|
|
AND `level`.rec_status = 0 AND `level`.question_code = 'HOS-LEVEL'
|
|
<if test="param.queryLevel == 0">
|
|
AND `level`.answer = '三级'
|
|
</if>
|
|
<if test="param.queryLevel == 1">
|
|
AND `level`.answer = '二级'
|
|
</if>
|
|
AND area.rec_status = 0 AND area.question_code = 'CITY-COUNTY'
|
|
AND SUBSTRING_INDEX(area.answer,',',1) = #{param.areaId}
|
|
ORDER BY (dpt59.answer+dpt89.answer+dpt91.answer) DESC
|
|
</select>
|
|
|
|
<select id="prtTotal" resultType="com.ccsens.carbasics.bean.vo.StatisticsVo$PrtTotal">
|
|
SELECT
|
|
SUM(prt29.answer)+SUM(prt59.answer) AS prt59,
|
|
SUM(prt29.answer) AS prt29,
|
|
CONVERT((SUM(prt29.answer)+SUM(prt59.answer))*100/(SUM(prt29.answer)+SUM(prt59.answer)+SUM(prt61.answer)),DECIMAL(15,1)) AS prt59Ratio,
|
|
CONVERT(SUM(prt29.answer)*100/(SUM(prt29.answer)+SUM(prt59.answer)+SUM(prt61.answer)),DECIMAL(15,1)) AS prt29Ratio
|
|
FROM
|
|
t_qcp_questionnaire_record AS prt29
|
|
LEFT JOIN t_qcp_questionnaire_detail AS d ON prt29.questionnaire_detail_id = d.id
|
|
LEFT JOIN t_qcp_questionnaire AS q ON d.questionnaire_id = q.id
|
|
LEFT JOIN t_qcp_questionnaire_record AS prt59 ON prt59.questionnaire_detail_id = d.id
|
|
LEFT JOIN t_qcp_questionnaire_record AS prt61 ON prt61.questionnaire_detail_id = d.id
|
|
LEFT JOIN t_qcp_questionnaire_record AS xgzl ON xgzl.questionnaire_detail_id = d.id
|
|
WHERE
|
|
prt29.rec_status = 0
|
|
<if test="qid != null">
|
|
AND q.id = #{qid} AND q.rec_status = 0
|
|
</if>
|
|
AND prt29.question_code = 'XGZL-PRT-29'
|
|
AND d.rec_status = 0
|
|
AND d.submit_status = 1
|
|
AND prt59.rec_status = 0
|
|
AND prt59.question_code = 'XGZL-PRT-59'
|
|
AND prt61.rec_status = 0
|
|
AND prt61.question_code = 'XGZL-PRT-62'
|
|
AND xgzl.rec_status = 0 AND xgzl.question_code = 'XGZL' AND xgzl.answer = '是'
|
|
</select>
|
|
|
|
<select id="prtSynopsis" resultType="com.ccsens.carbasics.bean.vo.StatisticsVo$PrtSynopsis">
|
|
SELECT
|
|
<if test="param.queryType == 1">
|
|
a.area_name AS cityName,
|
|
</if>
|
|
LEFT(level.answer,1) AS level,
|
|
IFNULL(ROUND((SUM(prt29.answer)+SUM(prt59.answer))*100/(SUM(prt29.answer)+SUM(prt59.answer)+SUM(prt61.answer)),1),0.0) AS prt59Ratio,
|
|
IFNULL(ROUND(SUM(prt29.answer)*100/(SUM(prt29.answer)+SUM(prt59.answer)+SUM(prt61.answer)),1),0.0) AS prt29Ratio
|
|
FROM
|
|
t_qcp_questionnaire_record AS prt29
|
|
LEFT JOIN t_qcp_questionnaire_detail AS d ON prt29.questionnaire_detail_id = d.id
|
|
LEFT JOIN t_qcp_questionnaire AS q ON d.questionnaire_id = q.id
|
|
LEFT JOIN t_qcp_questionnaire_record AS prt59 ON prt59.questionnaire_detail_id = d.id
|
|
LEFT JOIN t_qcp_questionnaire_record AS prt61 ON prt61.questionnaire_detail_id = d.id
|
|
LEFT JOIN t_qcp_questionnaire_record AS `level` ON `level`.questionnaire_detail_id = d.id
|
|
LEFT JOIN t_qcp_questionnaire_record AS xgzl ON xgzl.questionnaire_detail_id = d.id
|
|
LEFT JOIN t_qcp_questionnaire_record AS area ON area.questionnaire_detail_id = d.id
|
|
LEFT JOIN t_area AS a ON a.id = SUBSTRING_INDEX(area.answer,',',1)
|
|
WHERE prt29.rec_status = 0 AND prt29.question_code = 'XGZL-PRT-29'
|
|
<if test="param.qid != null">
|
|
AND q.id = #{qid} AND q.rec_status = 0
|
|
</if>
|
|
AND d.rec_status = 0 AND d.submit_status = 1
|
|
AND prt59.rec_status = 0
|
|
AND prt59.question_code = 'XGZL-PRT-59'
|
|
AND prt61.rec_status = 0
|
|
AND prt61.question_code = 'XGZL-PRT-62'
|
|
AND `level`.rec_status = 0 AND `level`.question_code = 'HOS-LEVEL'
|
|
<if test="param.queryLevel == 0">
|
|
AND `level`.answer = '三级'
|
|
</if>
|
|
<if test="param.queryLevel == 1">
|
|
AND `level`.answer = '二级'
|
|
</if>
|
|
AND xgzl.rec_status = 0 AND xgzl.question_code = 'XGZL' AND xgzl.answer = '是'
|
|
AND area.rec_status = 0 AND area.question_code = 'CITY-COUNTY'
|
|
<if test="param.queryType == 1">
|
|
AND SUBSTRING_INDEX(area.answer,',',1) = #{param.areaId}
|
|
</if>
|
|
</select>
|
|
|
|
<select id="queryPrtForCity" resultType="com.ccsens.carbasics.bean.vo.StatisticsVo$PrtData">
|
|
SELECT
|
|
a1.id AS areaId,
|
|
a1.area_name AS `name`,
|
|
a1.prt29RatioCity,
|
|
a1.prt59RatioCity,
|
|
IFNULL(a2.prt59Ratio,0.0) AS prt59Ratio,
|
|
IFNULL(a2.prt29Ratio,0.0) AS prt29Ratio
|
|
FROM
|
|
(SELECT
|
|
a.id,
|
|
a.area_name,
|
|
IFNULL(round((SUM(prt29.answer)+SUM(prt59.answer))*100/(SUM(prt29.answer)+SUM(prt59.answer)+SUM(prt61.answer)),1),0.0) AS prt59RatioCity,
|
|
IFNULL(round(SUM(prt29.answer)*100/(SUM(prt29.answer)+SUM(prt59.answer)+SUM(prt61.answer)),1),0.0) AS prt29RatioCity
|
|
FROM
|
|
t_qcp_questionnaire_record AS prt29
|
|
LEFT JOIN t_qcp_questionnaire_detail AS d ON prt29.questionnaire_detail_id = d.id
|
|
LEFT JOIN t_qcp_questionnaire AS q ON d.questionnaire_id = q.id
|
|
LEFT JOIN t_qcp_questionnaire_record AS prt59 ON prt59.questionnaire_detail_id = d.id
|
|
LEFT JOIN t_qcp_questionnaire_record AS prt61 ON prt61.questionnaire_detail_id = d.id
|
|
LEFT JOIN t_qcp_questionnaire_record AS xgzl ON xgzl.questionnaire_detail_id = d.id
|
|
LEFT JOIN t_qcp_questionnaire_record AS area ON area.questionnaire_detail_id = d.id
|
|
LEFT JOIN t_area AS a ON a.id = SUBSTRING_INDEX(area.answer,',',1)
|
|
WHERE
|
|
prt29.rec_status = 0
|
|
<if test="param.qid != null">
|
|
AND q.id = #{qid} AND q.rec_status = 0
|
|
</if>
|
|
AND prt29.question_code = 'XGZL-PRT-29'
|
|
AND d.rec_status = 0
|
|
AND d.submit_status = 1
|
|
AND prt59.rec_status = 0
|
|
AND prt59.question_code = 'XGZL-PRT-59'
|
|
AND prt61.rec_status = 0
|
|
AND prt61.question_code = 'XGZL-PRT-62'
|
|
AND xgzl.rec_status = 0
|
|
AND xgzl.question_code = 'XGZL'
|
|
AND xgzl.answer = '是'
|
|
AND area.rec_status = 0 AND area.question_code = 'CITY-COUNTY'
|
|
GROUP BY SUBSTRING_INDEX(area.answer,',',1)
|
|
) AS a1
|
|
RIGHT JOIN
|
|
(
|
|
SELECT
|
|
a.id,
|
|
a.area_name,
|
|
LEFT(level.answer,1) AS level,
|
|
IFNULL(round((SUM(prt29.answer)+SUM(prt59.answer))*100/(SUM(prt29.answer)+SUM(prt59.answer)+SUM(prt61.answer)),1),0.0) AS prt59Ratio,
|
|
IFNULL(round(SUM(prt29.answer)*100/(SUM(prt29.answer)+SUM(prt59.answer)+SUM(prt61.answer)),1),0.0) AS prt29Ratio
|
|
FROM
|
|
t_qcp_questionnaire_record AS prt29
|
|
LEFT JOIN t_qcp_questionnaire_detail AS d ON prt29.questionnaire_detail_id = d.id
|
|
LEFT JOIN t_qcp_questionnaire AS q ON d.questionnaire_id = q.id
|
|
LEFT JOIN t_qcp_questionnaire_record AS prt59 ON prt59.questionnaire_detail_id = d.id
|
|
LEFT JOIN t_qcp_questionnaire_record AS prt61 ON prt61.questionnaire_detail_id = d.id
|
|
LEFT JOIN t_qcp_questionnaire_record AS xgzl ON xgzl.questionnaire_detail_id = d.id
|
|
LEFT JOIN t_qcp_questionnaire_record AS `level` ON `level`.questionnaire_detail_id = d.id
|
|
LEFT JOIN t_qcp_questionnaire_record AS area ON area.questionnaire_detail_id = d.id
|
|
LEFT JOIN t_area AS a ON a.id = SUBSTRING_INDEX(area.answer,',',1)
|
|
WHERE
|
|
prt29.rec_status = 0
|
|
<if test="param.qid != null">
|
|
AND q.id = #{qid} AND q.rec_status = 0
|
|
</if>
|
|
AND prt29.question_code = 'XGZL-PRT-29'
|
|
AND d.rec_status = 0
|
|
AND d.submit_status = 1
|
|
AND prt59.rec_status = 0
|
|
AND prt59.question_code = 'XGZL-PRT-59'
|
|
AND prt61.rec_status = 0
|
|
AND prt61.question_code = 'XGZL-PRT-62'
|
|
AND xgzl.rec_status = 0
|
|
AND xgzl.question_code = 'XGZL'
|
|
AND xgzl.answer = '是'
|
|
AND `level`.rec_status = 0 AND `level`.question_code = 'HOS-LEVEL'
|
|
<if test="param.queryLevel == 0">
|
|
AND `level`.answer = '三级'
|
|
</if>
|
|
<if test="param.queryLevel == 1">
|
|
AND `level`.answer = '二级'
|
|
</if>
|
|
AND area.rec_status = 0 AND area.question_code = 'CITY-COUNTY'
|
|
GROUP BY SUBSTRING_INDEX(area.answer,',',1)
|
|
) AS a2 ON a1.id = a2.id
|
|
ORDER BY a2.prt59Ratio DESC
|
|
</select>
|
|
|
|
<select id="queryPrtForHospital" resultType="com.ccsens.carbasics.bean.vo.StatisticsVo$PrtData">
|
|
SELECT
|
|
hospital.answer AS `name`,
|
|
LEFT(level.answer,1) AS level,
|
|
IFNULL(round((prt29.answer+prt59.answer)*100/(prt29.answer+prt59.answer+prt61.answer),1),0.0) AS prt59Ratio,
|
|
IFNULL(round(prt29.answer*100/(prt29.answer+prt59.answer+prt61.answer),1),0.0) AS prt29Ratio,
|
|
prt29.answer AS prt29Number,
|
|
prt59.answer AS prt59Number,
|
|
prt61.answer AS prt61Number
|
|
FROM
|
|
t_qcp_questionnaire_record AS prt29
|
|
LEFT JOIN t_qcp_questionnaire_detail AS d ON prt29.questionnaire_detail_id = d.id
|
|
LEFT JOIN t_qcp_questionnaire AS q ON d.questionnaire_id = q.id
|
|
LEFT JOIN t_qcp_questionnaire_record AS prt59 ON prt59.questionnaire_detail_id = d.id
|
|
LEFT JOIN t_qcp_questionnaire_record AS prt61 ON prt61.questionnaire_detail_id = d.id
|
|
LEFT JOIN t_qcp_questionnaire_record AS xgzl ON xgzl.questionnaire_detail_id = d.id
|
|
LEFT JOIN t_qcp_questionnaire_record AS `level` ON `level`.questionnaire_detail_id = d.id
|
|
LEFT JOIN t_qcp_questionnaire_record AS hospital ON hospital.questionnaire_detail_id = d.id
|
|
LEFT JOIN t_qcp_questionnaire_record AS area ON area.questionnaire_detail_id = d.id
|
|
LEFT JOIN t_area AS a ON a.id = SUBSTRING_INDEX(area.answer,',',1)
|
|
WHERE
|
|
prt29.rec_status = 0
|
|
<if test="param.qid != null">
|
|
AND q.id = #{qid} AND q.rec_status = 0
|
|
</if>
|
|
AND prt29.question_code = 'XGZL-PRT-29'
|
|
AND d.rec_status = 0
|
|
AND d.submit_status = 1
|
|
AND prt59.rec_status = 0
|
|
AND prt59.question_code = 'XGZL-PRT-59'
|
|
AND prt61.rec_status = 0
|
|
AND prt61.question_code = 'XGZL-PRT-62'
|
|
AND xgzl.rec_status = 0
|
|
AND xgzl.question_code = 'XGZL'
|
|
AND xgzl.answer = '是'
|
|
AND hospital.rec_status = 0
|
|
AND hospital.question_code = 'HOS-NAME'
|
|
AND `level`.rec_status = 0 AND `level`.question_code = 'HOS-LEVEL'
|
|
<if test="param.queryLevel == 0">
|
|
AND `level`.answer = '三级'
|
|
</if>
|
|
<if test="param.queryLevel == 1">
|
|
AND `level`.answer = '二级'
|
|
</if>
|
|
AND area.rec_status = 0 AND area.question_code = 'CITY-COUNTY'
|
|
AND SUBSTRING_INDEX(area.answer,',',1) = #{param.areaId}
|
|
ORDER BY (prt29.answer+prt59.answer+prt61.answer) DESC
|
|
</select>
|
|
|
|
</mapper>
|