SELECT d2.tmcode,w.name AS ward_name ,m.name AS tm_name,COUNT(d2.dt_detail_id) AS tm_count
FROM dt_ipd_list d1
LEFT OUTER JOIN dt_ipd_list_detail d2 ON d2.dt_id = d1.dt_id
LEFT OUTER JOIN ipt i ON i.an = d1.an
LEFT OUTER JOIN dttm m ON m.code = d2.tmcode
LEFT OUTER JOIN ward w ON w.ward = i.ward
GROUP BY d2.tmcode,w.name ,m.name