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

<?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
4 years ago
<if test="areaId != null">
SUBSTRING_INDEX(area.answer,',',1) AS area,
4 years ago
</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
4 years ago
<if test="areaId != null">
LEFT JOIN t_qcp_questionnaire_record AS area ON area.questionnaire_detail_id = qd.id
4 years ago
</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
4 years ago
<if test="areaId != null">
LEFT JOIN t_qcp_questionnaire_record AS area ON area.questionnaire_detail_id = qd.id
4 years ago
</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
4 years ago
<if test="areaId != null">
LEFT JOIN t_qcp_questionnaire_record AS area ON area.questionnaire_detail_id = qd.id
4 years ago
</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>