ผู้เขียน หัวข้อ: กรองอายุ 15-34 ปีจากตาราง patient ได้ยังไงครับ  (อ่าน 4557 ครั้ง)

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

ออฟไลน์ panus_t

  • Hero Member
  • *****
  • กระทู้: 2,368
  • Respect: +8
    • ดูรายละเอียด
##select (2012 - YEAR(`birthday`)) as age_y from patient   where  chwpart="30" and amppart="03" and tmbpart="01" and moopart not in ('2','5','13','16') and age_y between "15" and "34"

 ;D
โรงพยาบาลเสิงสาง จ.นครราชสีมา (ขนาด  60  เตียง ปี2554)  ขึ้นระบบโดยทีมงาน BMS  เมื่อเดือนเมษายน 2551
ก่อนหน้านั้นขึ้นระบบเมื่อ 07/07/07 ฤกษ์ดี  Master Server  IBM System x3500M4  RAM ECC 24 GB. HardDisk SAS 450x3 GB. ServerRAID M1100 Series Zero RAID5  OS:CentOS 6.4  MySQLPercona : 5.5.30-30.1

ออฟไลน์ manoi

  • Hero Member
  • *****
  • กระทู้: 8,669
  • Respect: +170
    • ดูรายละเอียด
    • HOSxP Community Center
Re: กรองอายุ 15-34 ปีจากตาราง patient ได้ยังไงครับ
« ตอบกลับ #1 เมื่อ: ตุลาคม 08, 2012, 13:38:11 PM »
0
ทำไมไม่เขียนเป็น

where birthday between d1 and d2 จะง่ายกว่าหรือเปล่าครับ
HOSxP Project Manager / Cheif Developer / BMS MD

ออฟไลน์ panus_t

  • Hero Member
  • *****
  • กระทู้: 2,368
  • Respect: +8
    • ดูรายละเอียด
Re: กรองอายุ 15-34 ปีจากตาราง patient ได้ยังไงครับ
« ตอบกลับ #2 เมื่อ: ตุลาคม 08, 2012, 14:15:39 PM »
0
เผื่อมีการเปลี่ยนแปลงวันที่ตัดยอด เช่น อายุ 35 ปี ณวันที่ 1 ม.ค.55
กลัวจะคำนวนช่วงอายุผิด (อาจจะเบลอ ๆ ครับ) ก็เลยคิดว่าถ้าเป็นอัตโนมัติก็ดี ใส่ วันที่ตัดยอด ใส่ช่วงอายุ แบบนี้ครับ.... ;D แต่ตอนนี้ผมก็ทำแบบอ. MN ไปก่อน (ตอนนี้สมองก็มึน ๆ แล้วกลัวคำนวนกำหนดช่วงอายุผิดเหมือนกัน)   ;D
โรงพยาบาลเสิงสาง จ.นครราชสีมา (ขนาด  60  เตียง ปี2554)  ขึ้นระบบโดยทีมงาน BMS  เมื่อเดือนเมษายน 2551
ก่อนหน้านั้นขึ้นระบบเมื่อ 07/07/07 ฤกษ์ดี  Master Server  IBM System x3500M4  RAM ECC 24 GB. HardDisk SAS 450x3 GB. ServerRAID M1100 Series Zero RAID5  OS:CentOS 6.4  MySQLPercona : 5.5.30-30.1

ออฟไลน์ udomchok

  • Hero Member
  • *****
  • กระทู้: 8,358
  • Respect: +589
    • ดูรายละเอียด
    • ร.พ.สมเด็จพระสังฆราช องค์ที่ 17
Re: กรองอายุ 15-34 ปีจากตาราง patient ได้ยังไงครับ
« ตอบกลับ #3 เมื่อ: ตุลาคม 08, 2012, 15:04:33 PM »
0
select hn, birthday, datediff(now(),birthday)/365.25 as age_y
from patient
where datediff(now(),birthday)/365.25 between 15 and 34
order by age_y

สามารถเปลี่ยน now() เป็นวันที่ที่ต้องการ เช่น
ต้องการคำนวณอายุถึงวันที่ 1 ม.ค. 55

select hn, birthday, datediff("2012-01-01",birthday)/365.25 as age_y
from patient
where datediff("2012-01-01",birthday)/365.25 between 15 and 34
order by age_y
ทำด้วยหัวใจร.พ.สมเด็จพระสังฆราช องค์ที่ 17 อ.สองพี่น้อง จ.สุพรรณบุรี
อบรมโดย BMS Team เมื่อ พ.ย. 49 ขึ้นระบบห้องบัตรเมื่อ X'Mas 2007
2008 : X-Ray กายภาพบำบัด แพทย์แผนไทย กิจกรรมบำบัด OPD ตา
2009 : ทันตกรรม ห้องตรวจตา OPD (พยาบาลและห้องตรวจแพทย์บางห้อง)

ออฟไลน์ woravet

  • Sr. Member
  • ****
  • กระทู้: 414
  • Respect: +12
    • ดูรายละเอียด
Re: กรองอายุ 15-34 ปีจากตาราง patient ได้ยังไงครับ
« ตอบกลับ #4 เมื่อ: ตุลาคม 09, 2012, 10:36:22 AM »
0
set @ds:='2012-1-1';
select hn,birthday,timestampdiff(year,birthday,@ds) 'age_y'
,addrpart,lpad(moopart,2,'0') moopart,tmbpart,amppart,chwpart
from patient p
where timestampdiff(year,birthday,@ds) between 15 and 34
and chwpart=62
and amppart=10
and tmbpart=03
and moopart in (3,4,7,8)
รพ.บึงสามัคคี จ.กำแพงเพชร
*********************
อ.สุชัยและคณะ ขึ้นระบบ 29 ตค.49(Linux+Fedara 5)
*********************
ปัจจุบัน
HOSxP version 3.53.4.27
Server:Windows XP SP2,MySQL 5
Client ประมาณ 15 เครื่อง