ผู้เขียน หัวข้อ: ใช้ between แล้วข้อมูลก็ยังออกมาทั้งหมด  (อ่าน 3790 ครั้ง)

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

ออฟไลน์ Auing

  • Sr. Member
  • ****
  • กระทู้: 458
  • " *-* "
  • Respect: 0
    • ดูรายละเอียด
ใช้ between แล้วข้อมูลก็ยังออกมาทั้งหมด
« เมื่อ: ธันวาคม 14, 2009, 09:23:57 AM »
0
พอดีมีพี่ท่านมาขอรายงาน "คนไข้ Diag F ทั้งหมดและต้องการยาที่ใช้ด้วยกำหนดภายในช่วงวันเวลาดังกล่าว "
SQL ผมได้ประมาณนี้แต่เวลาไป  Run ข้อมูลออกมาทั้งหมดเลยครับไม่รู้ว่าผม join อะไรผิดหรือเปล่าอาจารย์ทั้งหลายชี้แนะด้วยครับ

select distinct p.hn,p.cid,concat(p.pname,p.fname,' ',p.lname),v.age_y,v.age_m,p.informaddr,o.icd10,o.icd103,o.vstdate,
concat(s.name,' ',s.strength,' ',s.units) as namedrug

from patient p
left outer join ovstdiag o     on p.hn = o.hn
left outer join vn_stat v      on p.hn = v.hn
left outer join opitemrece m1  on m1.vn= v.vn
left outer join an_stat a      on a.an=m1.an
left outer join s_drugitems s  on s.icode=m1.icode 
left outer join drugusage d    on d.drugusage=m1.drugusage
left outer join drugitems i    on i.icode=m1.icode

where icd10 between 'F00' and 'F99' and v.vstdate between '2008-10-01' and '2009-09-30'





« แก้ไขครั้งสุดท้าย: ธันวาคม 14, 2009, 09:26:43 AM โดย KoKu »
Santisuk Hosp
Mr.NOPHADON,>เจ้าพนักงานเครื่องคอมพิวเตอร์ชำนาญการกินเป็นพิเศษ
MSN      : auinga@hotmail.com    
Server   :   HP, Cen OS 6.4 64 bit, Ram 2 G 
Hosxp structure version    : 3.56.8.21, MariaDB 5.5.32
HOSxP Start : 13092549

ออฟไลน์ Terminator2015

  • Hero Member
  • *****
  • กระทู้: 3,352
  • Achilles : ประวัติศาสตร์จารึกชื่อกษัตริย์ มิได้จารึกชื่อทหาร
  • Respect: +66
    • ดูรายละเอียด
    • โรงพยาบาลนาเชือก
Re: ใช้ between แล้วข้อมูลก็ยังออกมาทั้งหมด
« ตอบกลับ #1 เมื่อ: ธันวาคม 14, 2009, 09:59:39 AM »
0
 :D ลองดูครับ ไม่รู้ว่าถูกตามความต้องการหรือเปล่า

select p.hn,p.cid,concat(p.pname,p.fname,' ',p.lname),v.age_y,v.age_m,p.informaddr,o.icd10,o.icd103,o.vstdate,
concat(s.name,' ',s.strength,' ',s.units) as namedrug
from patient p
left outer join ovstdiag o     on p.hn = o.hn
left outer join vn_stat v      on p.hn = v.hn
left outer join opitemrece m1  on m1.vn= v.vn
left outer join an_stat a      on a.an=m1.an
left outer join s_drugitems s  on s.icode=m1.icode 
left outer join drugusage d    on d.drugusage=m1.drugusage
left outer join drugitems i    on i.icode=m1.icode

where v.pdx between 'F00' and 'F99' and (v.vstdate between '2008-10-01' and '2009-09-30' )
group by p.hn


และอีกแบบ

select distinct p.hn,p.cid,concat(p.pname,p.fname,' ',p.lname),v.age_y,v.age_m,p.informaddr,o.icd10,o.icd103,o.vstdate,
concat(s.name,' ',s.strength,' ',s.units) as namedrug
from patient p
left outer join ovstdiag o     on p.hn = o.hn
left outer join vn_stat v      on p.hn = v.hn
left outer join opitemrece m1  on m1.vn= v.vn
left outer join an_stat a      on a.an=m1.an
left outer join s_drugitems s  on s.icode=m1.icode 
left outer join drugusage d    on d.drugusage=m1.drugusage
left outer join drugitems i    on i.icode=m1.icode

where v.pdx between 'F00' and 'F99' and (v.vstdate between '2008-10-01' and '2009-09-30' )
นายคณวัชร คำชัย(ทัศ) โรงพยาบาลนาเชือก จ.มหาสารคาม
Mail : nachuak@hotmail.co.th  Tel.  (AIS)0817080646
โรงพยาบาลชุมชน ขนาด 30 เตียง (Paperless OPD)
ดุแล สอ.12 แห่ง HOSxP_PCU 3.59.12.15 NewVersion
ขึ้นระบบเมื่อ 1 ต.ค. 2549

ออฟไลน์ thannawe

  • Hero Member
  • *****
  • กระทู้: 2,904
  • Respect: +8
    • ดูรายละเอียด
Re: ใช้ between แล้วข้อมูลก็ยังออกมาทั้งหมด
« ตอบกลับ #2 เมื่อ: ธันวาคม 14, 2009, 10:01:15 AM »
0
ตามนี้ครับ

select distinct p.hn,p.cid,concat(p.pname,p.fname,' ',p.lname),v.age_y,v.age_m,p.informaddr,o.icd10,o.icd103,o.vstdate,
concat(s.name,' ',s.strength,' ',s.units) as namedrug

from patient p
left outer join ovstdiag o     on p.hn = o.hn
left outer join vn_stat v      on p.hn = v.hn
left outer join opitemrece m1  on m1.vn= v.vn
left outer join an_stat a      on a.an=m1.an
left outer join s_drugitems s  on s.icode=m1.icode  
left outer join drugusage d    on d.drugusage=m1.drugusage
left outer join drugitems i    on i.icode=m1.icode

where icd10 between 'F00' and 'F99' and o.vstdate between '2008-10-01' and '2009-09-30'

เยี่ยมมากครับ เกือบถูกแล้วครับผม  ;D :D ;) :D ;D

ตอบไม่ทัน อ.Terminator2009 เลยครับ มัวแต่ลองอยู่
กิจจา ชาญธัญกรรม
นักวิชาการคอมพิวเตอร์ชำนาญการ รพ.โพธาราม จ.ราชบุรี
็HOSxP XE

ออฟไลน์ Auing

  • Sr. Member
  • ****
  • กระทู้: 458
  • " *-* "
  • Respect: 0
    • ดูรายละเอียด
Re: ใช้ between แล้วข้อมูลก็ยังออกมาทั้งหมด
« ตอบกลับ #3 เมื่อ: ธันวาคม 14, 2009, 10:13:41 AM »
0
ขอบคุณอาจารย์ทั้ง 2 ท่านครับ  .... ??? ??? ??? ???   ภูเขาบังปลายผมจริงๆๆ     ;D ;D ;)
Santisuk Hosp
Mr.NOPHADON,>เจ้าพนักงานเครื่องคอมพิวเตอร์ชำนาญการกินเป็นพิเศษ
MSN      : auinga@hotmail.com    
Server   :   HP, Cen OS 6.4 64 bit, Ram 2 G 
Hosxp structure version    : 3.56.8.21, MariaDB 5.5.32
HOSxP Start : 13092549