ผู้เขียน หัวข้อ: รบกวนดู sql ให้หน่อยครับ ของ opd  (อ่าน 5887 ครั้ง)

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

ออฟไลน์ gu_prajag

  • Sr. Member
  • ****
  • กระทู้: 253
  • Respect: +1
    • ดูรายละเอียด
รบกวนดู sql ให้หน่อยครับ ของ opd
« เมื่อ: กรกฎาคม 07, 2010, 15:09:34 PM »
0
โจทย์มีอยู่
- เขาต้องการยอดจำนวนคนไข้ที่มาตรวจ/หรือผ่านการซักประวัติที่ 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)
ศูนย์สารสนเทศ โรงพยาบาลมายอ/รพร.สายบุรี จ.ปัตตานี 
e-mail : my_kop@hotmail.com
SERVER :
CentOS+MariaDB

ออฟไลน์ navyNP

  • Hero Member
  • *****
  • กระทู้: 933
  • Respect: +3
    • ดูรายละเอียด
Re: รบกวนดู sql ให้หน่อยครับ ของ opd
« ตอบกลับ #1 เมื่อ: กรกฎาคม 07, 2010, 15:19:41 PM »
0
อย่างนี้หรือเปล่าครับ
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
เคยเป็น Admin รพ.อาภากรเกียรติวงศ์ สัตหีบ ชลบุรี(250 เตียง)
Implement by อ.MN & อ.suchai  ขึ้นระบบ 29 ก.ค.48
Server : RH Enterprise Linux AS release 3(taroon)
Client : winXP , Slave : winXP , MySQL 4.1
LIS : CST
version ปัจจุบัน 3.54.1.22

ออฟไลน์ navyNP

  • Hero Member
  • *****
  • กระทู้: 933
  • Respect: +3
    • ดูรายละเอียด
Re: รบกวนดู sql ให้หน่อยครับ ของ opd
« ตอบกลับ #2 เมื่อ: กรกฎาคม 07, 2010, 15:24:42 PM »
0
 ;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"
« แก้ไขครั้งสุดท้าย: กรกฎาคม 07, 2010, 15:36:20 PM โดย navyNP »
เคยเป็น Admin รพ.อาภากรเกียรติวงศ์ สัตหีบ ชลบุรี(250 เตียง)
Implement by อ.MN & อ.suchai  ขึ้นระบบ 29 ก.ค.48
Server : RH Enterprise Linux AS release 3(taroon)
Client : winXP , Slave : winXP , MySQL 4.1
LIS : CST
version ปัจจุบัน 3.54.1.22

ออฟไลน์ gu_prajag

  • Sr. Member
  • ****
  • กระทู้: 253
  • Respect: +1
    • ดูรายละเอียด
Re: รบกวนดู sql ให้หน่อยครับ ของ opd
« ตอบกลับ #3 เมื่อ: กรกฎาคม 07, 2010, 16:09:07 PM »
0
;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)
ศูนย์สารสนเทศ โรงพยาบาลมายอ/รพร.สายบุรี จ.ปัตตานี 
e-mail : my_kop@hotmail.com
SERVER :
CentOS+MariaDB

ออฟไลน์ gu_prajag

  • Sr. Member
  • ****
  • กระทู้: 253
  • Respect: +1
    • ดูรายละเอียด
Re: รบกวนดู sql ให้หน่อยครับ ของ opd
« ตอบกลับ #4 เมื่อ: กรกฎาคม 09, 2010, 09:21:34 AM »
0
ขออนุญาติดันกระทู้
ศูนย์สารสนเทศ โรงพยาบาลมายอ/รพร.สายบุรี จ.ปัตตานี 
e-mail : my_kop@hotmail.com
SERVER :
CentOS+MariaDB

ออฟไลน์ woravet

  • Sr. Member
  • ****
  • กระทู้: 414
  • Respect: +12
    • ดูรายละเอียด
Re: รบกวนดู sql ให้หน่อยครับ ของ opd
« ตอบกลับ #5 เมื่อ: กรกฎาคม 09, 2010, 09:46:09 AM »
0
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)

ประมาณนี้มั๊ย
รพ.บึงสามัคคี จ.กำแพงเพชร
*********************
อ.สุชัยและคณะ ขึ้นระบบ 29 ตค.49(Linux+Fedara 5)
*********************
ปัจจุบัน
HOSxP version 3.53.4.27
Server:Windows XP SP2,MySQL 5
Client ประมาณ 15 เครื่อง