ผู้เขียน หัวข้อ: สอบถามเรื่องการดึงข้อมูลการจ่ายยาเป็นชุดครับ  (อ่าน 5523 ครั้ง)

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

ออฟไลน์ songwut

  • Jr. Member
  • **
  • กระทู้: 55
  • Respect: 0
    • ดูรายละเอียด
สวัสดีครับ
ผมได้ลองใช้คำสั่ง

SELECT o.hn,o.vn,di.name,o.vstdate
FROM opitemrece o
INNER JOIN drugitems di ON o.icode = di.icode
WHERE ((o.icode = '1510206') and (o.icode = '1460563') and (o.icode = '1460283'))
and  o.vn IN (SELECT vn_stat.vn FROM vn_stat WHERE  vstdate between '2011-02-01' and '2011-02-31' and vn_stat.pdx in ('b24'))
and o.vstdate between '2011-02-01' and '2011-02-31'
group by o.vn

เพื่อจะดึงข้อมูลรายการยาที่ถูกจ่ายให้คนไข้ โดยเป็นยา 3 ตัวนี้ (คนไข้1คน ที่ได้รับยา 3ตัวนี้พร้อมกัน)
แต่ไม่สำเร็จ
ได้ลองเปลี่ยนจาก

WHERE ((o.icode = '1510206') and (o.icode = '1460563') and (o.icode = '1460283'))

เป็น

WHERE o.icode IN ('1500016','1460563','1470510')

ก็ยังไม่ได้ ไม่แน่ใจว่าผิดตรงไหน รบกวนช่วยดูทีครับ

ขอบคุณครับ
 

ออฟไลน์ pop_hosxp

  • Hero Member
  • *****
  • กระทู้: 3,129
  • Respect: +38
    • ดูรายละเอียด
    • Phanomphrai Hospital
Re: สอบถามเรื่องการดึงข้อมูลการจ่ายยาเป็นชุดครับ
« ตอบกลับ #1 เมื่อ: พฤศจิกายน 10, 2011, 18:44:51 PM »
0
น่าจะเป็น

โค๊ด: SQL
  1. SELECT v.hn, v.vn, v.vstdate
  2. FROM vn_stat v
  3. LEFT OUTER JOIN opitemrece o1 ON o1.vn=v.vn AND o1.icode="1510206"
  4. LEFT OUTER JOIN opitemrece o2 ON o2.vn=v.vn AND o2.icode="1460563"
  5. LEFT OUTER JOIN opitemrece o3 ON o3.vn=v.vn AND o3.icode="1460283"
  6. WHERE v.vstdate BETWEEN "2011-02-01" AND "2011-02-31"
  7. AND v.pdx="b24"
  8. GROUP BY v.vn
pop434241@gmail.com
รพ.พนมไพร จ.ร้อยเอ็ด www.phanomphrai.net

ออฟไลน์ taw2010

  • Hero Member
  • *****
  • กระทู้: 537
  • Respect: 0
    • ดูรายละเอียด
Re: สอบถามเรื่องการดึงข้อมูลการจ่ายยาเป็นชุดครับ
« ตอบกลับ #2 เมื่อ: พฤศจิกายน 10, 2011, 20:22:59 PM »
0
ผมดูคำสั่ง SQL  แล้วน่าจะเป็น VN ครั้งที่มาว่าใช้ยา พร้อมกันทั้งหมด3 ตัวยาหรือเปล่า
ไม่ใช่เป็นจำนวนคนครับ
โรงพยาบาลดำเนินสะดวก จ.ราชบุรี
มือใหม่

ออฟไลน์ pop_hosxp

  • Hero Member
  • *****
  • กระทู้: 3,129
  • Respect: +38
    • ดูรายละเอียด
    • Phanomphrai Hospital
Re: สอบถามเรื่องการดึงข้อมูลการจ่ายยาเป็นชุดครับ
« ตอบกลับ #3 เมื่อ: พฤศจิกายน 10, 2011, 20:27:46 PM »
0
ผมดูคำสั่ง SQL  แล้วน่าจะเป็น VN ครั้งที่มาว่าใช้ยา พร้อมกันทั้งหมด3 ตัวยาหรือเปล่า
ไม่ใช่เป็นจำนวนคนครับ


เป็นจำนวนคนตรงไหนครับ  ???
pop434241@gmail.com
รพ.พนมไพร จ.ร้อยเอ็ด www.phanomphrai.net

ออฟไลน์ เกื้อกูล ครับ..

  • Hero Member
  • *****
  • กระทู้: 12,611
  • Respect: +169
    • ดูรายละเอียด
    • โรงพยาบาลปากท่อ
Re: สอบถามเรื่องการดึงข้อมูลการจ่ายยาเป็นชุดครับ
« ตอบกลับ #4 เมื่อ: พฤศจิกายน 11, 2011, 08:27:56 AM »
0
...อืม..
ถ้าต้องการรายชื่อคนไข้ที่ได้รับ แบบไม่ซ้ำ HN ในช่วงเวลาดังกล่าว  ก็ลองเพิ่ม

SELECT distinct(p.hn),concat(p.pname,p.fname,"  ",p.lname) as patient, v.vstdate,v.pdx

    FROM vn_stat v
    left outer join patient p on p.hn=v.hn...นำทางครับ..
« แก้ไขครั้งสุดท้าย: พฤศจิกายน 11, 2011, 08:30:54 AM โดย เกื้อกูล ครับ.. »
Implement  HOSxP  Start 2548 ---> NOW!
Station : 130 Client   V.3 Version  3.67.1.XX
Server  : CENTOS  +MySQL maria 10.x.x

ออฟไลน์ songwut

  • Jr. Member
  • **
  • กระทู้: 55
  • Respect: 0
    • ดูรายละเอียด
Re: สอบถามเรื่องการดึงข้อมูลการจ่ายยาเป็นชุดครับ
« ตอบกลับ #5 เมื่อ: พฤศจิกายน 11, 2011, 12:14:39 PM »
0
เหมือนผมจะอธิบายผิดเอง เพราะลองเขียนคำสั่งตามนี้แล้ว

1.SELECT v.hn, v.vn, v.vstdate


2.FROM vn_stat v


3.LEFT OUTER JOIN opitemrece o1 ON o1.vn=v.vn AND o1.icode="1510206"


4.LEFT OUTER JOIN opitemrece o2 ON o2.vn=v.vn AND o2.icode="1460563"


5.LEFT OUTER JOIN opitemrece o3 ON o3.vn=v.vn AND o3.icode="1460283"


6.WHERE v.vstdate BETWEEN "2011-02-01" AND "2011-02-31"


7.AND v.pdx="b24"


8.GROUP BY v.vn

มันยังไม่ได้ตามที่ต้องการครับ มันกลายเป็น คนไข้ 1 คน เคยได้รับยา 3 ตัวนี้

คือ อยากได้คนไข้ 1 visit ได้รับยา 3 ตัวนี้พร้อมกัน ใน visit ครั้งนั้นๆน่ะครับ

ต้องขอรบกวนทุกท่านอีกครั้งด้วยครับ
 

ออฟไลน์ songwut

  • Jr. Member
  • **
  • กระทู้: 55
  • Respect: 0
    • ดูรายละเอียด
Re: สอบถามเรื่องการดึงข้อมูลการจ่ายยาเป็นชุดครับ
« ตอบกลับ #6 เมื่อ: พฤศจิกายน 14, 2011, 15:14:17 PM »
0
คิดว่าน่าจะได้แล้ว

SELECT o.hn,o.vn,di.name,o.vstdate
FROM opitemrece o
INNER JOIN drugitems di ON o.icode = di.icode
WHERE  o.icode IN ('1460286','1460563','1510206')
and o.vstdate between '2011-01-01' and '2011-10-31'
group by o.vn
HAVING COUNT(DISTINCT o.icode) = 3