ผู้เขียน หัวข้อ: ช่วยดู query ให้หน่อยครับ  (อ่าน 6129 ครั้ง)

0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้

ออฟไลน์ Knott

  • Hero Member
  • *****
  • กระทู้: 883
  • Respect: +1
    • ดูรายละเอียด
ช่วยดู query ให้หน่อยครับ
« เมื่อ: เมษายน 30, 2008, 11:22:46 AM »
0
รันแล้วออกมาหมดเลยครับ ไม่ออกมาตามช่วงวันที่ที่กำหนดน่ะครับ
ผู้รู้ช่วยหน่อยนะครับ

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'))
รพช.วัดโบสถ์ จ.พิษณุโลก
ขึ้นระบบ 1 เมษายน 2551 (ขึ้นระบบเอง)
Server : IBM x3250 M2, RAM 4 GB, FreeBSD 7.2, Mysql 5.1.30
HOSxP Version 3.56.1.15

ออฟไลน์ pop_hosxp

  • Hero Member
  • *****
  • กระทู้: 3,128
  • Respect: +38
    • ดูรายละเอียด
    • Phanomphrai Hospital
Re: ช่วยดู query ให้หน่อยครับ
« ตอบกลับ #1 เมื่อ: เมษายน 30, 2008, 11:47:29 AM »
0
แก้ในส่วน 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')
« แก้ไขครั้งสุดท้าย: เมษายน 30, 2008, 15:47:06 PM โดย pop_hosxp »
pop434241@gmail.com
รพ.พนมไพร จ.ร้อยเอ็ด www.phanomphrai.net

ออฟไลน์ pop_hosxp

  • Hero Member
  • *****
  • กระทู้: 3,128
  • Respect: +38
    • ดูรายละเอียด
    • Phanomphrai Hospital
Re: ช่วยดู query ให้หน่อยครับ
« ตอบกลับ #2 เมื่อ: เมษายน 30, 2008, 11:52:03 AM »
0
เพิ่มเติมอีกนิดนะครับ ในส่วนของตาราง thaiaddress ที่นำมาพ่วงอาจจะไม่ต้องก็ได้ครับ เพราะในการทำรายงานสามารถใช้ variable เข้าช่วย โดยใช้ getpatientaddress มาช่วย จะได้ไม่ต้องเขียนคำัสั่งในส่วนนี้
pop434241@gmail.com
รพ.พนมไพร จ.ร้อยเอ็ด www.phanomphrai.net

ออฟไลน์ Knott

  • Hero Member
  • *****
  • กระทู้: 883
  • Respect: +1
    • ดูรายละเอียด
Re: ช่วยดู query ให้หน่อยครับ
« ตอบกลับ #3 เมื่อ: เมษายน 30, 2008, 15:39:16 PM »
0
ไม่หายครับ ขึ้นรวมเหมือนเดิม ผมเขียน pascal ไม่เป็นเลยศึกษาจากใน webboard เอาน่ะครับ
« แก้ไขครั้งสุดท้าย: เมษายน 30, 2008, 15:50:42 PM โดย blacksimon »
รพช.วัดโบสถ์ จ.พิษณุโลก
ขึ้นระบบ 1 เมษายน 2551 (ขึ้นระบบเอง)
Server : IBM x3250 M2, RAM 4 GB, FreeBSD 7.2, Mysql 5.1.30
HOSxP Version 3.56.1.15

ออฟไลน์ pop_hosxp

  • Hero Member
  • *****
  • กระทู้: 3,128
  • Respect: +38
    • ดูรายละเอียด
    • Phanomphrai Hospital
Re: ช่วยดู query ให้หน่อยครับ
« ตอบกลับ #4 เมื่อ: เมษายน 30, 2008, 15:41:21 PM »
0
ขอดูคำสั่งที่เขียนใหม่ด้วยครับ
pop434241@gmail.com
รพ.พนมไพร จ.ร้อยเอ็ด www.phanomphrai.net

ออฟไลน์ Knott

  • Hero Member
  • *****
  • กระทู้: 883
  • Respect: +1
    • ดูรายละเอียด
Re: ช่วยดู query ให้หน่อยครับ
« ตอบกลับ #5 เมื่อ: เมษายน 30, 2008, 16:27:58 PM »
0
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')


แก้ได้แล้วครับ  ต้องแบบนี้ครับ
« แก้ไขครั้งสุดท้าย: เมษายน 30, 2008, 16:35:07 PM โดย blacksimon »
รพช.วัดโบสถ์ จ.พิษณุโลก
ขึ้นระบบ 1 เมษายน 2551 (ขึ้นระบบเอง)
Server : IBM x3250 M2, RAM 4 GB, FreeBSD 7.2, Mysql 5.1.30
HOSxP Version 3.56.1.15