BMS-HOSxP Community
HOSxP => การเขียน SQL Script => ข้อความที่เริ่มโดย: gu_prajag ที่ กรกฎาคม 07, 2010, 15:09:34 PM
-
โจทย์มีอยู่
- เขาต้องการยอดจำนวนคนไข้ที่มาตรวจ/หรือผ่านการซักประวัติที่ opd เฉพาะวันเสาร์ อาทิตย์ ในช่วงเวลา 8.30-12.30 และช่วงวันที่กำหนด ผมคิวรีออกมาแล้วเขาบอกว่าข้อมูลน่าจะน้อยกว่าความเป็นจริง เลยรบกวนท่านๆช่วยดูหน่อยครับ ผมแยกแต่ละเดือนและแยกเป็นเสาร์และอาทิตย์ในแต่ละเดือน
;1=อาทิตย์ ,7=เสาร์
select monthname(vstdate),dayname(vstdate),dayofweek(vstdate),count(vn) as cc
from ovst
where dayofweek(vstdate) in('1','7') and (vstdate between '2010-01-01' and '2010-07-06') and main_dep='007'
and (vsttime between '08:30:00' and '12:30:00')
group by monthname(vstdate),dayofweek(vstdate)
order by month(vstdate),dayname(vstdate)
-
อย่างนี้หรือเปล่าครับ
select count(ov.hn) as chn
from vn_stat ov, ovst ovst, patient pt
where ov.vn=ovst.vn and pt.hn=ov.hn and ov.vstdate between "2010-01-01" and "2010-07-06"
and ovst.main_dep="007"
แต่ถ้าใช้ Out patient Custom search น่าจะง่ายกว่าไหมครับ ;D
-
;D ผิดอันลืมใส่เงื่อนไขวันหยุดกับช่วงเวลา
select count(v.vn) from vn_stat v,ovst o
where v.vn=o.vn and v.vstdate between "2010-01-01" and "2010-07-06"
and o.vsttime between "08:30:00" and "12:30:00"
and dayofweek(v.vstdate) in (7,1)
and o.main_dep="007"
-
;D ผิดอันลืมใส่เงื่อนไขวันหยุดกับช่วงเวลา
select count(v.vn) from vn_stat v,ovst o
where v.vn=o.vn and v.vstdate between "2010-01-01" and "2010-07-06"
and o.vsttime between "08:30:00" and "12:30:00"
and dayofweek(v.vstdate) in (7,1)
and o.main_dep="007"
ผมเอาโค็ดท่านมาเพิ่ม เพื่อแยกเดือนและวัน ผลก็ออกมาเท่ากันกับของเดิมของผมด้านบนครับ
ดังนี้
select monthname(v.vstdate),dayname(v.vstdate),dayofweek(v.vstdate),count(v.vn) from vn_stat v,ovst o
where v.vn=o.vn and v.vstdate between "2010-01-01" and "2010-07-06"
and o.vsttime between "08:30:00" and "12:30:00"
and dayofweek(v.vstdate) in (7,1)
and o.main_dep="007"
group by monthname(v.vstdate),dayofweek(v.vstdate)
order by month(v.vstdate),dayname(v.vstdate)
-
ขออนุญาติดันกระทู้
-
select year(vstdate) 'year'
,cast(monthname(vstdate) as char(30)) 'month'
,cast(dayname(vstdate) as char(20)) 'day'
,sum(if(main_dep='027',1,0)) 'Screen'
,sum(if(main_dep='011',1,0)) 'ER'
,count(vn) 'amount'
from ovst
where vstdate between '2010-1-1' and '2010-1-31'
and vsttime between '08:30:00' and '12:30:00'
group by year(vstdate),month(vstdate),dayofweek(vstdate)
order by year(vstdate),month(vstdate),dayofweek(vstdate)
ประมาณนี้มั๊ย