BMS-HOSxP Community
HOSxP => แจ้งปัญหา / ขอความช่วยเหลือ => ข้อความที่เริ่มโดย: sshpt ที่ ธันวาคม 18, 2007, 09:49:53 AM
-
ดึงอายุผู้ป่วยมาจากตารางไหนครับ หรือว่าต้องคำนวนเอาจากวันเกิดครับ
ขอคำแนะนำ และ Code sql ด้วยนะครับ ;D
-
ตาราง vn_stat ครับ หรื่อคำนวณจากวันเดือนปีเกิดในตาราง patient ครับ
-
select distinct concat(p.pname,p.fname,' ',p.lname)as Patient_name,v.age_y
from patient p
left outer join vn_stat v on p.hn=v.hn where v.hn='xxxxxxx'
-
select hn,pname,fname,lname,year(curdate())-year(birthday) as age
from patient
limit 20
-
พิจารณาสักนิดครับ
แบบท่าน thecoy เป็นการนับถึงวันที่มา visit
แบบท่าน phin เป็นการนับถึงวันปัจจุบันครับ
ก็เลือกเอาตามความต้องการครับ
-
ดึงอายุผู้ป่วยมาจากตารางไหนครับ หรือว่าต้องคำนวนเอาจากวันเกิดครับ
ขอคำแนะนำ และ Code sql ด้วยนะครับ ;D
สองเงื้อนไข ครับ
1. ต้องการอายุใหม่ทุกเวลาที่เรียก ก็ใช้คำนวนจาก patient
2. ต้องการอายุ ณ เวลาที่ผู้ป่วยมารับบริการ ก็จาก vn_stat
-
ขอบคุณครับ ;D
-
ถ้าต้องการอายุ ที่คำนวณจากวันที่ปัจจุบัน แยกเป็น age_y,age_m,age_d
ผมลองใช้วิธีข้างล่าง age_m มันไม่ค่อยตรง อ.มีวิธีอื่นหรือเปล่าครับ
select hn,birthday,
floor(datediff(curdate(),birthday)/365) as age_y,floor(mod(datediff(curdate(),birthday),365)/30) as age_m
from patient
limit 10
-
vn_stat จะเก็บ ไว้แล้วสำหรับวันที่คนไข้มารับบริการ ไม่ทราบว่าจะเอาไปทำอะไรครับ
-
ลองปรับใช้ดูครับ
http://hosxp.net/index.php?option=com_smf&Itemid=28&topic=3548.0
;) ;) ;)
-
ขอบคุณครับ
-
เอาไปดัดแปลงใช้เองนะครับ เป็นการคำนวนอายุจากวันเกิดใน ตาราง patient ครับ
SELECT TIMESTAMPDIFF(YEAR,birthday,CURDATE()) as dd from patient where hn="123456789"
แจ่มไหมครับ