ผู้เขียน หัวข้อ: ขอคำปรึกษาเซียนsql หน่อยครับ  (อ่าน 3877 ครั้ง)

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

ออฟไลน์ Guitar-hero

  • Hero Member
  • *****
  • กระทู้: 605
  • Respect: 0
    • ดูรายละเอียด
    • โรงพยาบาลละแม,รพ.ละแม
ขอคำปรึกษาเซียนsql หน่อยครับ
« เมื่อ: กันยายน 20, 2010, 16:32:14 PM »
0
คือผมต้องการดึงข้อมูลคนไข้ โดยสามารถเลือกตามกลุ่มอายุได้ โดยคำสั่ง sql ที่ผมเขียนประมาณนี้

select pt.*,ov.*
from vn_stat ov ,patient pt ,ovst ovst
where  ov.vn=ovst.vn and pt.hn=ov.hn and ov.vstdate between "2010-09-01" and  "2010-09-10" and ov.hn=pt.hn
 and ov.age_y>= 0
 and ov.age_y<= 1
 and ov.spclty="01"

ซึ่งจริงๆแล้ว ผมต้องการให้มันแสดงข้อมูลอายุ ตามเงือนไขดังต่อไปนี้
0-1 ปี
1 ปี 1 เดือน - 3 ปี
3 ปี 1 เดือน -5 ปี 11 เดือน
6 ปี - 12 ปี 11 เดือน
13 ปี -18 ปี

จะใช้ sql ยังไงครับ ถึงจะกำหนด เงื่อนไขระดับ 1 ปี 1 เดือน -3 ปี เป็นต้น



จีระยุทธ ปิ่นสุวรรณ นักวิชาการคอมพิวเตอร์(พนักงานราชการ)
รพช.ละแม จ.ชุมพร
MASTER: HP Proliant Dl160 gen10
SLAVE: Dell PowerEdge T610 Quad core Intel 3.0G Ram 8GB Centos 5.9+Mysql 5.5

ออฟไลน์ udomchok

  • Hero Member
  • *****
  • กระทู้: 8,348
  • Respect: +589
    • ดูรายละเอียด
    • ร.พ.สมเด็จพระสังฆราช องค์ที่ 17
Re: ขอคำปรึกษาเซียนsql หน่อยครับ
« ตอบกลับ #1 เมื่อ: กันยายน 20, 2010, 18:08:46 PM »
0
จะใช้ sql ยังไงครับ ถึงจะกำหนด เงื่อนไขระดับ 1 ปี 1 เดือน -3 ปี เป็นต้น
ลองศึกษาและประยุกต์ใช้ report ที่ผมทำจาก http://hosxp.net/index.php?option=com_smf&Itemid=28&topic=17347.msg140875
ทำด้วยหัวใจร.พ.สมเด็จพระสังฆราช องค์ที่ 17 อ.สองพี่น้อง จ.สุพรรณบุรี
อบรมโดย BMS Team เมื่อ พ.ย. 49 ขึ้นระบบห้องบัตรเมื่อ X'Mas 2007
2008 : X-Ray กายภาพบำบัด แพทย์แผนไทย กิจกรรมบำบัด OPD ตา
2009 : ทันตกรรม ห้องตรวจตา OPD (พยาบาลและห้องตรวจแพทย์บางห้อง)

ออฟไลน์ redfireball

  • Full Member
  • ***
  • กระทู้: 219
  • คุณแม่ขอร้อง..ร้อง....
  • Respect: +4
    • ดูรายละเอียด
Re: ขอคำปรึกษาเซียนsql หน่อยครับ
« ตอบกลับ #2 เมื่อ: กันยายน 21, 2010, 01:46:10 AM »
0
อาจจะบ้านๆ หน่อยน่ะครับ นับเดือน ไล่ไปเลย  ;D ;D ;D

select pt.*,ov.*
from vn_stat ov
inner join patient pt on pt.hn = ov.hn
inner join ovst on ovst.vn = ov.vn
where  ov.vstdate between '2010-09-01' and  '2010-09-10' and ov.spclty = '01'
แล้วก็เปลี่ยนช่วงปีเอง
and timestampdiff(MONTH,pt.birthday,ov.vstdate) between 0 and 12
หรือ
and timestampdiff(MONTH,pt.birthday,ov.vstdate) between 13 and 36
หรือ
and timestampdiff(MONTH,pt.birthday,ov.vstdate) between 37 and 71
หรือ
and timestampdiff(MONTH,pt.birthday,ov.vstdate) between 72 and 155
หรือ
and timestampdiff(MONTH,pt.birthday,ov.vstdate) between 156 and 216

หรือจะนับจำนวนรวม ตามช่วงอายุที่กำหนดเมื่อกี้ก็  ;) ;)

select 'ผู้มารับบริการ แยกตามช่วงอายุ' as nn
,sum(case when timestampdiff(MONTH,pt.birthday,ov.vstdate) between 0 and 12 then 1 else 0 end) as 0_1
,sum(case when timestampdiff(MONTH,pt.birthday,ov.vstdate) between 13 and 36 then 1 else 0 end) as 11_3
,sum(case when timestampdiff(MONTH,pt.birthday,ov.vstdate) between 37 and 71 then 1 else 0 end) as 31_511
,sum(case when timestampdiff(MONTH,pt.birthday,ov.vstdate) between 72 and 155 then 1 else 0 end) as 6_1211
,sum(case when timestampdiff(MONTH,pt.birthday,ov.vstdate) between 156 and 216 then 1 else 0 end) as 13_18
from vn_stat ov
inner join patient pt on pt.hn = ov.hn
inner join ovst on ovst.vn = ov.vn
where  ov.vstdate between '2010-09-01' and  '2010-09-10' and ov.spclty = '01'



โรงพยาบาลสังคม
SANGKHOM HOSPITAL
30 เตียง อ.สังคม จ.หนองคาย
http://www.sangkhomhospital.com
ขึ้นระบบ 5 ธ.ค. 51

ออฟไลน์ Bond_007

  • Hero Member
  • *****
  • กระทู้: 1,533
  • เมื่อก่อนเคยรักมากเท่าไหร่มันยังคงรักมากเท่านั้น
  • Respect: +2
    • ดูรายละเอียด
Re: ขอคำปรึกษาเซียนsql หน่อยครับ
« ตอบกลับ #3 เมื่อ: กันยายน 21, 2010, 08:24:13 AM »
0
 ;D ;D ;D
โรงพยาบาลศิริเวชลำพูน
Hosxp version 3.53.7.16
ขอขบคุณ อาจารย์ชัยพร,อ.อ็อด,อ.เกื้อ,พี่เอก,พี่กิติศักดิ์,พี่เข้ม,พี่ไสว,พี่ terminator 2010,พี่pikepid,พี่udomchock ,พี่ขวด,พี่เจมส์,ป๋าJdadmin,พี่กานดา admin ทุกๆท่าน และนางฟ้า BMS

ทำเพื่อใครสักคนฉันได้ทำเพื่อความรัก
ร้องให้สักคนฉันก็ร้องจากหัวใจ
รักที่มันต้องจบมันก็ยังงดงาม ฉันยังจำไว้

Nologo How to be hosxp star