|
|
@ -376,5 +376,88 @@ |
|
|
|
AND p.rec_status = 0 |
|
|
|
AND o.rec_status = 0 |
|
|
|
</select> |
|
|
|
<select id="hospitalRankStatistical" resultType="com.ccsens.carbasics.bean.vo.OrganizationVo$HospitalRankItem"> |
|
|
|
SELECT |
|
|
|
d.user_id as userId, |
|
|
|
h.hospitalName as name, |
|
|
|
h.hospitalLevel as level, |
|
|
|
if(t.count is null,0, t.count) as `value` |
|
|
|
FROM |
|
|
|
( |
|
|
|
SELECT |
|
|
|
t1.detail_id, |
|
|
|
t1.hospitalName, |
|
|
|
t3.hospitalLevel |
|
|
|
FROM |
|
|
|
(SELECT questionnaire_detail_id as detail_id,answer as hospitalName FROM `t_qcp_questionnaire_record` |
|
|
|
WHERE question_code = 'HOS-NAME' and rec_status = 0) t1, |
|
|
|
(SELECT questionnaire_detail_id as detail_id FROM `t_qcp_questionnaire_record` |
|
|
|
WHERE question_code = 'CITY-COUNTY' |
|
|
|
<if test="areaId != null"> |
|
|
|
AND answer LIKE concat('%',#{areaId},'%') |
|
|
|
</if> |
|
|
|
and rec_status = 0)t2, |
|
|
|
(SELECT questionnaire_detail_id as detail_id,answer as hospitalLevel FROM `t_qcp_questionnaire_record` |
|
|
|
WHERE question_code = 'HOS-LEVEL' |
|
|
|
<if test="level != null"> |
|
|
|
and answer = #{level} |
|
|
|
</if> |
|
|
|
and rec_status = 0)t3 |
|
|
|
WHERE |
|
|
|
t1.detail_id = t2.detail_id |
|
|
|
and t1.detail_id = t2.detail_id |
|
|
|
and t2.detail_id = t3.detail_id |
|
|
|
)h |
|
|
|
LEFT JOIN |
|
|
|
( |
|
|
|
<choose> |
|
|
|
<when test="type == 0"> |
|
|
|
SELECT |
|
|
|
a1.detail_id as detail_id, |
|
|
|
convert((a1.answer / a2.answer)*100,decimal(15,0)) as count |
|
|
|
FROM |
|
|
|
(SELECT |
|
|
|
questionnaire_detail_id as detail_id, |
|
|
|
answer |
|
|
|
FROM `t_qcp_questionnaire_record` |
|
|
|
WHERE question_code = 'actual-Nnt' and rec_status = 0)a1, |
|
|
|
(SELECT |
|
|
|
questionnaire_detail_id as detail_id, |
|
|
|
answer |
|
|
|
FROM `t_qcp_questionnaire_record` |
|
|
|
WHERE question_code = 'AIS-Nnt' and rec_status = 0)a2 |
|
|
|
WHERE |
|
|
|
a1.detail_id = a2.detail_id |
|
|
|
</when> |
|
|
|
<when test="type == 1"> |
|
|
|
SELECT |
|
|
|
a1.detail_id as detail_id, |
|
|
|
convert((a1.answer / (a1.answer + a2.answer + a3.answer))*100,decimal(15,0)) as count |
|
|
|
FROM |
|
|
|
(SELECT |
|
|
|
questionnaire_detail_id as detail_id, |
|
|
|
answer |
|
|
|
FROM `t_qcp_questionnaire_record` |
|
|
|
WHERE question_code = '45-Nnt' and rec_status = 0)a1, |
|
|
|
(SELECT |
|
|
|
questionnaire_detail_id as detail_id, |
|
|
|
answer |
|
|
|
FROM `t_qcp_questionnaire_record` |
|
|
|
WHERE question_code = '60-Nnt' and rec_status = 0)a2, |
|
|
|
(SELECT |
|
|
|
questionnaire_detail_id as detail_id, |
|
|
|
answer |
|
|
|
FROM `t_qcp_questionnaire_record` |
|
|
|
WHERE question_code = '61-Nnt' and rec_status = 0)a3 |
|
|
|
WHERE |
|
|
|
a1.detail_id = a2.detail_id |
|
|
|
and a2.detail_id = a3.detail_id |
|
|
|
and a1.detail_id = a3.detail_id |
|
|
|
</when> |
|
|
|
</choose> |
|
|
|
)t on h.detail_id = t.detail_id |
|
|
|
LEFT JOIN t_qcp_questionnaire_detail d on h.detail_id = d.id and rec_status = 0 |
|
|
|
ORDER BY `value` DESC |
|
|
|
</select> |
|
|
|
|
|
|
|
</mapper> |
|
|
|