BMS-HOSxP Community

HOSxP => การเขียน SQL Script => ข้อความที่เริ่มโดย: Knott ที่ เมษายน 30, 2008, 11:22:46 AM

หัวข้อ: ช่วยดู query ให้หน่อยครับ
เริ่มหัวข้อโดย: 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'))
หัวข้อ: Re: ช่วยดู query ให้หน่อยครับ
เริ่มหัวข้อโดย: pop_hosxp ที่ เมษายน 30, 2008, 11:47:29 AM
แก้ในส่วน 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')
หัวข้อ: Re: ช่วยดู query ให้หน่อยครับ
เริ่มหัวข้อโดย: pop_hosxp ที่ เมษายน 30, 2008, 11:52:03 AM
เพิ่มเติมอีกนิดนะครับ ในส่วนของตาราง thaiaddress ที่นำมาพ่วงอาจจะไม่ต้องก็ได้ครับ เพราะในการทำรายงานสามารถใช้ variable เข้าช่วย โดยใช้ getpatientaddress มาช่วย จะได้ไม่ต้องเขียนคำัสั่งในส่วนนี้
หัวข้อ: Re: ช่วยดู query ให้หน่อยครับ
เริ่มหัวข้อโดย: Knott ที่ เมษายน 30, 2008, 15:39:16 PM
ไม่หายครับ ขึ้นรวมเหมือนเดิม ผมเขียน pascal ไม่เป็นเลยศึกษาจากใน webboard เอาน่ะครับ
หัวข้อ: Re: ช่วยดู query ให้หน่อยครับ
เริ่มหัวข้อโดย: pop_hosxp ที่ เมษายน 30, 2008, 15:41:21 PM
ขอดูคำสั่งที่เขียนใหม่ด้วยครับ
หัวข้อ: Re: ช่วยดู query ให้หน่อยครับ
เริ่มหัวข้อโดย: Knott ที่ เมษายน 30, 2008, 16:27:58 PM
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')


แก้ได้แล้วครับ  ต้องแบบนี้ครับ