首页统计柱状图
SELECT
count( userPhone ) AS userCount,
organizationId,organizationName
FROM
(
SELECT
a.userPhone,
a.organizationId,
o.organizationName,
hr.questionnaireId
FROM
(
SELECT
userPhone,
organizationId
FROM
(
SELECT
userPhone,
organizationId
FROM
user_info UNION
SELECT
userPhone,
organizationId
FROM
user_info_sub_workers UNION
SELECT
userPhone,
organizationId
FROM
user_info_own_workers
) ui
WHERE
ui.organizationId IN ( SELECT organizationId FROM organization WHERE parentId = 795)
) a
LEFT JOIN organization o ON a.organizationId = o.organizationId
LEFT JOIN (
SELECT max( healthRecordId ) AS healthRecordId,phone, name, MAX(createTime), expiredTime,organizationId,questionnaireId
FROM health_record
WHERE 1=1
AND organizationId IN ( SELECT organizationId FROM organization WHERE parentId = 795)
-- and expiredTime > CURRENT_TIMESTAMP ()
GROUP BY
phone
) hr ON a.userPhone = hr.phone
WHERE
hr.healthRecordId IS NOT NULL
) b
GROUP BY organizationId
、、、
SELECT 0 AS writeCount, a.organizationName, a.questionnaireName, concat( a.organizationId, '-', a.questionnaireId ) AS id, CASE WHEN b.userCount IS NULL THEN 0 ELSE b.userCount END AS unWriteCount FROM (SELECT qc.organizationId,o.organizationName,hq.questionnaireId,hq.questionnaireName FROM ( SELECT * FROM questionnaire_config WHERE organizationId IN ( SELECT organizationId FROM organization WHERE parentId = 795 ) ) qc LEFT JOIN health_questionnaire hq ON qc.questionnaireId = hq.questionnaireId LEFT JOIN organization o ON qc.organizationId = o.organizationId ) a LEFT JOIN ( SELECT count( DISTINCT userPhone ) AS userCount, ui.organizationId FROM( SELECT userPhone, organizationId FROM user_info UNION SELECT userPhone, organizationId FROM user_info_sub_workers UNION SELECT userPhone, organizationId FROM user_info_own_workers ) ui WHERE ui.organizationId IN ( SELECT organizationId FROM organization WHERE parentId = 795 ) GROUP BY ui.organizationId ) b ON a.organizationId = b.organizationId
再有
SELECT * FROM health_record where phone='18883128818'
SELECT * FROM health_record where questionnaireId=817 order by createTime DESC
SELECT userPhone, organizationId
FROM user_info where userPhone in
(
SELECT phone
FROM health_record
WHERE healthRecordId IS NOT NULL
AND organizationId IN ( SELECT organizationId FROM organization WHERE parentId = 795)
GROUP BY phone
) -- AND organizationId=796
SELECT count( userPhone ) AS userCount, organizationId FROM ( SELECT a.userPhone, a.organizationId, hr.questionnaireId FROM ( SELECT userPhone, organizationId FROM ( SELECT userPhone, organizationId FROM user_info ) ui WHERE ui.organizationId IN ( SELECT organizationId FROM organization WHERE parentId = 795) ) a LEFT JOIN ( SELECT max( healthRecordId ) AS healthRecordId,phone, name, MAX(createTime), expiredTime,organizationId,questionnaireId FROM health_record WHERE 1=1 AND organizationId IN ( SELECT organizationId FROM organization WHERE parentId = 795) -- and expiredTime > CURRENT_TIMESTAMP () GROUP BY phone ) hr ON a.userPhone = hr.phone LEFT JOIN health_questionnaire hq ON hr.questionnaireId = hq.questionnaireId WHERE hr.healthRecordId IS NOT NULL AND hq.organizationId = 795 ) b GROUP BY organizationId
mybaits:
<select id="getWriteStatByOrganizationIdStatistics" resultType="net.sf.json.JSONObject">
SELECT count(userPhone) AS writeCount,
b.organizationId,
c.allcount-count(userPhone) as unWriteCount,
organizationName
FROM (
SELECT a.userPhone,
a.organizationId,
o.organizationName,
hr.questionnaireId
FROM (
SELECT userPhone,
organizationId
FROM (
<if test="workType!=null and workType =='all'">
SELECT userPhone, organizationId FROM user_info
UNION SELECT userPhone, organizationId
FROM user_info_sub_workers
UNION SELECT userPhone, organizationId FROM user_info_own_workers
</if>
<if test="workType!=null and workType =='own'">
SELECT userPhone, organizationId FROM user_info_own_workers
</if>
<if test="workType!=null and workType =='sub'">
SELECT userPhone, organizationId
FROM user_info_sub_workers
</if>
<if test="workType!=null and workType =='cus'">
SELECT userPhone, organizationId FROM user_info
</if>
) ui
WHERE <if test="node ==3">
ui.organizationId IN ( SELECT organizationId FROM organization WHERE parentId = #{organizationId} )
</if>
<if test="node ==4">
ui.organizationId = #{organizationId}
</if>
) a
LEFT JOIN organization o ON a.organizationId = o.organizationId
LEFT JOIN (
SELECT max(healthRecordId) AS healthRecordId,
phone,
name,
MAX(createTime),
expiredTime,
organizationId,
questionnaireId
FROM health_record
WHERE 1 = 1
AND <if test="node ==3">
organizationId IN ( SELECT organizationId FROM organization WHERE parentId = #{organizationId} )
</if>
<if test="node ==4">
organizationId = #{organizationId}
</if>
-- and expiredTime > CURRENT_TIMESTAMP ()
GROUP BY phone
) hr ON a.userPhone = hr.phone
WHERE hr.healthRecordId IS NOT NULL
) b
LEFT JOIN (
SELECT COUNT(userPhone) as allcount,
ui2.organizationId
FROM (
<if test="workType!=null and workType =='all'">
SELECT userPhone, organizationId FROM user_info
UNION SELECT userPhone, organizationId
FROM user_info_sub_workers
UNION SELECT userPhone, organizationId FROM user_info_own_workers
</if>
<if test="workType!=null and workType =='own'">
SELECT userPhone, organizationId FROM user_info_own_workers
</if>
<if test="workType!=null and workType =='sub'">
SELECT userPhone, organizationId
FROM user_info_sub_workers
</if>
<if test="workType!=null and workType =='cus'">
SELECT userPhone, organizationId FROM user_info
</if>
) ui2
WHERE
<if test="node ==3">
ui2.organizationId IN ( SELECT organizationId FROM organization WHERE parentId = #{organizationId} )
</if>
<if test="node ==4">
ui2.organizationId = #{organizationId}
</if>
) c ON c.organizationId = b.organizationId
GROUP BY organizationId
</select>
浙公网安备 33010602011771号