SELECT e.name AS citizenship,a.icd10,d.name AS icd10name,
COUNT(m1.vn) AS m1,COUNT(m2.vn) AS m2,COUNT(m3.vn) AS m3,COUNT(m4.vn) AS m4,COUNT(m5.vn) AS m5,
COUNT(m6.vn) AS m6,COUNT(m7.vn) AS m7,COUNT(m8.vn) AS m8,COUNT(m9.vn) AS m9,COUNT(m10.vn) AS m10,
COUNT(m11.vn) AS m11,COUNT(m12.vn) AS m12,COUNT(a.vn) AS total
FROM ovstdiag a
LEFT OUTER JOIN vn_stat b ON a.vn=b.vn
LEFT OUTER JOIN patient c ON b.hn=c.hn
LEFT OUTER JOIN icd101 d ON a.icd10=d.code
LEFT OUTER JOIN nationality e ON c.citizenship=e.nationality
LEFT OUTER JOIN vn_stat m1 ON a.vn=m1.vn AND MONTH(m1.vstdate)=1
LEFT OUTER JOIN vn_stat m2 ON a.vn=m2.vn AND MONTH(m2.vstdate)=2
LEFT OUTER JOIN vn_stat m3 ON a.vn=m3.vn AND MONTH(m3.vstdate)=3
LEFT OUTER JOIN vn_stat m4 ON a.vn=m4.vn AND MONTH(m4.vstdate)=4
LEFT OUTER JOIN vn_stat m5 ON a.vn=m5.vn AND MONTH(m5.vstdate)=5
LEFT OUTER JOIN vn_stat m6 ON a.vn=m6.vn AND MONTH(m6.vstdate)=6
LEFT OUTER JOIN vn_stat m7 ON a.vn=m7.vn AND MONTH(m7.vstdate)=7
LEFT OUTER JOIN vn_stat m8 ON a.vn=m8.vn AND MONTH(m8.vstdate)=8
LEFT OUTER JOIN vn_stat m9 ON a.vn=m9.vn AND MONTH(m9.vstdate)=9
LEFT OUTER JOIN vn_stat m10 ON a.vn=m10.vn AND MONTH(m10.vstdate)=10
LEFT OUTER JOIN vn_stat m11 ON a.vn=m11.vn AND MONTH(m11.vstdate)=11
LEFT OUTER JOIN vn_stat m12 ON a.vn=m12.vn AND MONTH(m12.vstdate)=12
WHERE b.vstdate BETWEEN '2007-01-01' AND '2007-12-01'
AND c.citizenship<>'99'
GROUP BY c.citizenship,a.icd10
ORDER BY c.citizenship,total DESC