BMS-HOSxP Community
HOSxP => Report Exchange => ข้อความที่เริ่มโดย: panus_t ที่ มิถุนายน 08, 2011, 11:53:59 AM
-
ขอคำสั่ง SQL เพื่อทำรายงานครับ
นับจำนวนผู้ป่วย ที่ Admit ในแต่ละวัน ของ ward1 ตามช่วงวันที่เรากำหนด เช่น
4/7/2553 8
5/7/2553 8
6/7/2553 4
7/7/2553 9
8/7/2553 10
ขอบคุณครัีบ
ปล.เมื่อได้รายวันแล้ว ผมต้องนำไป Sum เป็นเดือน และเป็นปี ต่อไป ขอคำสั่งที่ Sum เป็นเดือน เป็นปี ด้วยนะครับ
+++++++++++++++++++++ ;D ;D ;D ;D++++++++++++++++++++
-
แบบนี้ใช้ได้ไหม แต่งเติมอีกนิดหน่อยครับ
select w.name,count(distinct(hn)) as cc from ipt i
left outer join ward w on(i.ward=w.ward)
where regdate between "2011-05-01" and "2011-05-31" group by i.ward order by cc DESC
-
ขอบคุณครับ
แล้วถ้าต้องการออกเป็นรายวันแบบนี้ละครับ (มี 2 คอลัมน์)
:D
1/5/2554 8
2/5/2554 9
3/5/2554 7
4/5/2554 4
5/5/2554 5
.
.
.
-
ขอคำสั่ง SQL เพื่อทำรายงานครับ
นับจำนวนผู้ป่วย ที่ Admit ในแต่ละวัน ของ ward1 ตามช่วงวันที่เรากำหนด เช่น
4/7/2553 8
5/7/2553 8
6/7/2553 4
7/7/2553 9
8/7/2553 10
ขอบคุณครัีบ
ปล.เมื่อได้รายวันแล้ว ผมต้องนำไป Sum เป็นเดือน และเป็นปี ต่อไป ขอคำสั่งที่ Sum เป็นเดือน เป็นปี ด้วยนะครับ
+++++++++++++++++++++ ;D ;D ;D ;D++++++++++++++++++++
หมายถึง เฉพาะที่ Admit ใหม่ หรือที่นอนอยู่แล้ว หรือทั้งสองครับ
-
select w.name,i.regdate,count(distinct(hn)) as cc from ipt i
left outer join ward w on(i.ward=w.ward)
where regdate between "2011-05-01" and "2011-05-31" group by w.ward, i.regdate order by cc DESC
-
ท่านเกื้อรายการ มันช้ำกันไหมคะ ถ้าใช้ CODE นี้
-
ลอง copy ไป รันใหม่ดูครับ..
select i.regdate,count(distinct(hn)) as cc from ipt i
left outer join ward w on(i.ward=w.ward)
where regdate between "2011-05-01" and "2011-05-31" group by i.regdate order by cc DESC
หรือแบบแยกตึก แยกวัน ก็อันเดิมของโพสต์ ครับ..ดูดี ๆ อีกนิดนึง ;)
select w.name,i.regdate,count(distinct(hn)) as cc from ipt i
left outer join ward w on(i.ward=w.ward)
where regdate between "2011-05-01" and "2011-05-31" group by w.ward, i.regdate order by cc DESC
-
ขอบพระคุณมากคร่า......ท่านอาจารย์
-
1.รายวัน
select regdate,count(an) cc
from an_stat
where regdate between '2011-1-1' and '2011-1-31'
and ward='01' //รหัสที่ต้องการ
group by regdate
order by regdate
2.รายเดือน
select month(regdate) 'month',year(regdate) 'year',count(an) cc
from an_stat
where regdate between '2011-1-1' and '2011-12-31'
and ward='01'
group by month,year
order by month,year
3.รายปี
select year(regdate) 'year',count(an) cc
from an_stat
where regdate between '2009-1-1' and '2011-12-31'
and ward='01'
group by year
order by year
-
1.รายวัน
2.รายเดือน
3.รายปี
แบบนี้คือ เฉพาะรายที่ Admit ใหม่ในวัน/เดือน/ปี ตามช่วงเวลาที่กำหนด
-
น่าจะคล้ายๆ กท. นี้นะครับ ;D ;D >> http://hosxp.net/index.php?option=com_smf&Itemid=28&topic=20722.msg177950#new
และ >> http://www.nkhosxp.com/viewtopic.php?f=6&t=376
ได้ อ.woravet มาช่วย query หายอดแต่ละวัน ;) ;)
เลยจับมาใส่รายงานครับ :) :) :)
-
เยี่ยมมากครับ
ขอบคุณครับ
-
หมายถึง เฉพาะที่ Admit ใหม่ หรือที่นอนอยู่แล้ว หรือทั้งสองครับ
ถ้าหาที่นอนอยู่แล้ว
ปัญหาของตย. sql ข้างตัน(สำหรับรพ.ที่มีหลากward และมีการย้ายตึกย้ายเตียง)คือ
field ward ใน table ipt และ อื่นๆ คือ ward สุดท้ายที่ผู้ป่วย admit อยู่
ถ้ามีการย้ายตึก ยอดจะไม่ตรงกับความจริง ควรต้องใช้ข้อมูลใน iptbedmove ประกอบด้วย
ตย. ถ้ามา query ย้อนหลัง อาจไม่มีผู้ป่วย ICU (หรือมีก็น้อยมากเฉพาะที่ discharge ที่ ICU)
เพราะส่วนใหญ่จะย้ายออกไป ward ทั่วไป ก่อนdischarge
ถ้าเฉพาะ Admit ใหม่ จะมี field first_ward ใน table IPT ให้ใช้
-
อย่างที่ รพ. มี 3 Unit,=NICU,LR,ICU
Ward อีก 9 ward มีการย้ายเข้า - ออก จาก สามัญ มาพิเศษ ฝาก อาจารย์พัฒนาต่อด้วยนะ ที่ทำมา ใช้ได้ดีนะครับ สุดยอดครับ