LEFT JOIN ( SELECT ID_CARD, count( id ) AS count FROM ic_resi_vaccine WHERE DEL_FLAG = '0' AND CUSTOMER_ID = #{customerId} GROUP BY ID_CARD ) b ON a.ID_CARD = b.ID_CARD
LEFT JOIN ( SELECT ID_CARD, count( id ) AS count FROM ic_nat WHERE DEL_FLAG = '0' AND CUSTOMER_ID = #{customerId} GROUP BY ID_CARD ) c ON a.ID_CARD = c.ID_CARD
LEFT JOIN (
SELECT ID_CARD, count( id ) AS count
FROM ic_resi_vaccine
WHERE DEL_FLAG = '0' AND CUSTOMER_ID = #{customerId}
<iftest="startDate != null and startDate != ''">
AND DATE_FORMAT(INOCULATE_TIME,"%Y-%m-%d") > #{startDate}
</if>
<iftest="endDate != null and endDate != ''">
AND DATE_FORMAT(INOCULATE_TIME,"%Y-%m-%d") < #{endDate}
</if>
GROUP BY ID_CARD ) b ON a.ID_CARD = b.ID_CARD
LEFT JOIN (
SELECT ID_CARD, count( id ) AS count
FROM ic_nat
WHERE DEL_FLAG = '0' AND CUSTOMER_ID = #{customerId}
<iftest="startDate != null and startDate != ''">
AND DATE_FORMAT(NAT_TIME,"%Y-%m-%d") > #{startDate}
</if>
<iftest="endDate != null and endDate != ''">
AND DATE_FORMAT(NAT_TIME,"%Y-%m-%d") < #{endDate}
</if>
GROUP BY ID_CARD ) c ON a.ID_CARD = c.ID_CARD
WHERE
a.DEL_FLAG = '0'
<iftest="customerId != null and customerId != ''">