set @start = '2014-10-01';#ใส่วันที่รับบริการเริ่มตัน
set @end = '2015-09-30';#ใส่วันที่รับบริการสิ้นสุด
select distinct visit.visitdate AS 'วันที่รับบริการ'
,ctitle.titlename AS 'คำนำหน้า'
,person.fname AS 'ชื่อ'
,person.lname AS 'นามสุกล'
,CONCAT(house.hno) AS 'บ้านเลขที่'
,village.villno AS 'หมู่ที่'
,cright.rightname AS 'สิทธิ์'
,GROUP_CONCAT(visitdiag.diagcode) AS 'วินิจฉัย'
,case when cdrug.drugtype = '02' and cdrug.drugtypesub = '1' then GROUP_CONCAT(cdrug.drugname) else null end as ส่งเสริมทันตกรรม
,case when cdrug.drugtype = '02' and cdrug.drugtypesub = '2' then GROUP_CONCAT(cdrug.drugname) else null end as รักษาทันตกรรม
from visitdiag #Lung1969
inner join visit on visitdiag.visitno = visit.visitno and visitdiag.pcucode = visit.pcucode
inner join person on visit.pid = person.pid and visit.pcucode = person.pcucodeperson
inner join ctitle on person.prename = ctitle.titlecode
inner join house on person.hcode = house.hcode and person.pcucodeperson = house.pcucode
inner join village on house.villcode = village.villcode
inner join visitdrug on visit.visitno = visitdrug.visitno and visit.pcucode = visitdrug.pcucode 
inner join cright on cright.rightcode = person.rightcode
inner join cdrug on visitdrug.drugcode = cdrug.drugcode 
and( cdrug.drugtype ='02' or (cdrug.drugtype = '02' and cdrug.drugtypesub = '1' ))
and visitdiag.pcucode = visit.pcucode
and visit.visitdate BETWEEN @start and @end
and visit.flagservice = '03'
WHERE diagcode BETWEEN 'k00' and 'k14' or visitdiag.diagcode = 'Z01.2'
group by visit.visitdate 
,ctitle.titlename 
,person.fname 
,person.lname 
,house.hno 
,village.villno 
,cright.rightname 
ORDER BY visit.visitdate DESC;