BMS-HOSxP Community
HOSxP => การเขียน SQL Script => ข้อความที่เริ่มโดย: Knott ที่ เมษายน 30, 2008, 11:22:46 AM
-
รันแล้วออกมาหมดเลยครับ ไม่ออกมาตามช่วงวันที่ที่กำหนดน่ะครับ
ผู้รู้ช่วยหน่อยนะครับ
SELECT v.hn,v.vstdate,CONCAT(p.pname,p.fname,' ',p.lname) as fullname,v.age_y,v.cid,concat(p.addrpart," ???? ",p.moopart," ?.",t3.name," ?.",t2.name," ?.",t1.name) as fulladdressname,v.pdx,v.dx0,v.dx1,v.income
from vn_stat v
LEFT OUTER JOIN patient p ON p.hn=v.hn
left outer join thaiaddress t1 on t1.chwpart=p.chwpart and t1.amppart="00" and t1.tmbpart="00"
left outer join thaiaddress t2 on t2.chwpart=p.chwpart and t2.amppart=p.amppart and t2.tmbpart="00"
left outer join thaiaddress t3 on t3.chwpart=p.chwpart and t3.amppart=p.amppart and t3.tmbpart=p.tmbpart
where (v.vstdate between '2008-03-01' and '2008-03-31') and (p.chwpart='65' and p.amppart='01' and p.tmbpart='08' and p.moopart in ('1','2','8','9','10','11','13','14'))
or (p.chwpart='65' and p.amppart='01' and p.tmbpart='09' and p.moopart in ('1','6','7','8','9')) and (v.pttype in ('06','34','16','22','43','28','25','40','37','31','19'))
-
แก้ในส่วน where ให้เป็นตามนี้ครับ
where v.vstdate between '2008-03-01' and '2008-03-31' and
( (p.chwpart='65' and p.amppart='01' and p.tmbpart='08' and p.moopart in ('1','2','8','9','10','11','13','14') or (p.chwpart='65' and p.amppart='01' and p.tmbpart='09' and p.moopart in ('1','6','7','8','9') ) and
v.pttype in ('06','34','16','22','43','28','25','40','37','31','19')
-
เพิ่มเติมอีกนิดนะครับ ในส่วนของตาราง thaiaddress ที่นำมาพ่วงอาจจะไม่ต้องก็ได้ครับ เพราะในการทำรายงานสามารถใช้ variable เข้าช่วย โดยใช้ getpatientaddress มาช่วย จะได้ไม่ต้องเขียนคำัสั่งในส่วนนี้
-
ไม่หายครับ ขึ้นรวมเหมือนเดิม ผมเขียน pascal ไม่เป็นเลยศึกษาจากใน webboard เอาน่ะครับ
-
ขอดูคำสั่งที่เขียนใหม่ด้วยครับ
-
SELECT v.hn,v.vstdate,CONCAT(p.pname,p.fname,' ',p.lname) as fullname,v.age_y,v.cid,concat(p.addrpart,"หมู่ ",p.moopart," ",t.full_name) as fulladdressname,v.pdx,v.dx0,v.dx1,v.income
from vn_stat v
LEFT OUTER JOIN patient p ON p.hn=v.hn
LEFT OUter Join thaiaddress t ON t.addressid=v.aid
where v.vstdate between '2008-03-01' and '2008-03-31'
and ((p.chwpart='65' and p.amppart='01' and p.tmbpart='08' and p.moopart in ('1','2','8','9','10','11','13','14'))
or (p.chwpart='65' and p.amppart='01' and p.tmbpart='09' and p.moopart in ('1','6','7','8','9') ))
and v.pttype in ('06','34','16','22','43','28','25','40','37','31','19')
แก้ได้แล้วครับ ต้องแบบนี้ครับ