ผู้เขียน หัวข้อ: คำสั่งดึงข้อมูลล่าสุด  (อ่าน 7633 ครั้ง)

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

ออฟไลน์ munsat

  • Full Member
  • ***
  • กระทู้: 101
  • Respect: +3
    • ดูรายละเอียด
คำสั่งดึงข้อมูลล่าสุด
« เมื่อ: มิถุนายน 14, 2018, 19:03:16 PM »
0
ขอตัวอย่างคำสั่ง SQL ดึงข้อมูลการตรวจ HbA1C ครั้งหลังสุด ของแต่ละคนที่ได้รับการตรวจในปีงบประมาณ 2561 บ้างครับ
 

ออฟไลน์ BlueEye

  • Newbie
  • *
  • กระทู้: 46
  • Respect: +6
    • ดูรายละเอียด
Re: คำสั่งดึงข้อมูลล่าสุด
« ตอบกลับ #1 เมื่อ: มิถุนายน 15, 2018, 08:33:46 AM »
+1
แก้เลข 319 ให้เป็นรหัส HBA1C ของโรงพยาบาลด้วยนะครับ
โค๊ด: [Select]

SELECT q2.vstdate, q2.hn, q2.lab_order_result FROM
(SELECT q1.*
, @rnk := IF(@prevn = q1.hn, @rnk + 1, 1) AS rnk
, (@prevn := q1.hn) AS prevn
FROM(SELECT v.vstdate,h.hn,o.lab_order_result
FROM ovst AS v
INNER JOIN lab_head AS h ON v.vn = h.vn
INNER JOIN lab_order AS o ON h.lab_order_number = o.lab_order_number
, (SELECT @prevn := "", @rnk := 0) AS var1
WHERE o.lab_items_code = "319" AND
v.vstdate BETWEEN "2017-10-01" AND "2018-09-30"
ORDER BY v.hn ASC, v.vstdate DESC) AS q1) AS q2
WHERE q2.rnk = 1

Si Prachan Hospital : Suphanburi
OS : CentOS 7
MySQL : MariaDB 10.1.22

ออฟไลน์ udomchok

  • Hero Member
  • *****
  • กระทู้: 8,359
  • Respect: +589
    • ดูรายละเอียด
    • ร.พ.สมเด็จพระสังฆราช องค์ที่ 17
Re: คำสั่งดึงข้อมูลล่าสุด
« ตอบกลับ #2 เมื่อ: มิถุนายน 15, 2018, 14:54:21 PM »
0
แก้เลข 319 ให้เป็นรหัส HBA1C ของโรงพยาบาลด้วยนะครับ
โค๊ด: [Select]

SELECT q2.vstdate, q2.hn, q2.lab_order_result FROM
(SELECT q1.*
, @rnk := IF(@prevn = q1.hn, @rnk + 1, 1) AS rnk
, (@prevn := q1.hn) AS prevn
FROM(SELECT v.vstdate,h.hn,o.lab_order_result
FROM ovst AS v
INNER JOIN lab_head AS h ON v.vn = h.vn
INNER JOIN lab_order AS o ON h.lab_order_number = o.lab_order_number
, (SELECT @prevn := "", @rnk := 0) AS var1
WHERE o.lab_items_code = "319" AND
v.vstdate BETWEEN "2017-10-01" AND "2018-09-30"
ORDER BY v.hn ASC, v.vstdate DESC) AS q1) AS q2
WHERE q2.rnk = 1

ปรับเป็น รหัส 7 หลักเลยครับ
lab_items.provis_labcode ครับ
ทำด้วยหัวใจร.พ.สมเด็จพระสังฆราช องค์ที่ 17 อ.สองพี่น้อง จ.สุพรรณบุรี
อบรมโดย BMS Team เมื่อ พ.ย. 49 ขึ้นระบบห้องบัตรเมื่อ X'Mas 2007
2008 : X-Ray กายภาพบำบัด แพทย์แผนไทย กิจกรรมบำบัด OPD ตา
2009 : ทันตกรรม ห้องตรวจตา OPD (พยาบาลและห้องตรวจแพทย์บางห้อง)

ออฟไลน์ BlueEye

  • Newbie
  • *
  • กระทู้: 46
  • Respect: +6
    • ดูรายละเอียด
Re: คำสั่งดึงข้อมูลล่าสุด
« ตอบกลับ #3 เมื่อ: มิถุนายน 15, 2018, 15:20:33 PM »
+2
แบบใช้ provis_labcode ครับ

โค๊ด: [Select]
SELECT q2.vstdate, q2.hn, q2.lab_order_result FROM
(SELECT q1.*
, @rnk := IF(@prevn = q1.hn, @rnk + 1, 1) AS rnk
, (@prevn := q1.hn) AS prevn
FROM(SELECT v.vstdate,h.hn,o.lab_order_result,i.provis_labcode
FROM ovst AS v
INNER JOIN lab_head AS h ON v.vn = h.vn
INNER JOIN lab_order AS o ON h.lab_order_number = o.lab_order_number
INNER JOIN lab_items AS i ON o.lab_items_code = i.lab_items_code
, (SELECT @prevn := "", @rnk := 0) AS var1
WHERE i.provis_labcode = "0531601" AND
v.vstdate BETWEEN "2017-10-01" AND "2018-09-30"
ORDER BY v.hn ASC, v.vstdate DESC) AS q1) AS q2
WHERE q2.rnk = 1
Si Prachan Hospital : Suphanburi
OS : CentOS 7
MySQL : MariaDB 10.1.22

ออฟไลน์ woravet

  • Sr. Member
  • ****
  • กระทู้: 415
  • Respect: +12
    • ดูรายละเอียด
Re: คำสั่งดึงข้อมูลล่าสุด
« ตอบกลับ #4 เมื่อ: มิถุนายน 19, 2018, 09:50:32 AM »
0
ลองใช้ของ opdscreen
select s.hn
,substring_index(group_concat(distinct s.vstdate order by vn desc),',',1) vstdate
,substring_index(group_concat(hba1c order by vn desc),',',1) hba1c
from opdscreen s
where s.vstdate between '2017-10-1' and '2018-9-30'
and s.hba1c>0
group by s.hn
รพ.บึงสามัคคี จ.กำแพงเพชร
*********************
อ.สุชัยและคณะ ขึ้นระบบ 29 ตค.49(Linux+Fedara 5)
*********************
ปัจจุบัน
HOSxP version 3.53.4.27
Server:Windows XP SP2,MySQL 5
Client ประมาณ 15 เครื่อง