BMS-HOSxP Community
HOSxP => Report Exchange => ข้อความที่เริ่มโดย: gweeped ที่ กรกฎาคม 06, 2011, 11:31:11 AM
-
คือต้องการแสดงข้อมูลข้อผู้ป่วยที่มารับบริการ ซึ่งสามารถเลือกเฉพาะประเภทต่างๆได้
<สามารถเลือกตรง er_pt_type ได้>
ช่วยดูคำสั่ง SQL หน่อยฮะว่ามีส่วนไหนผิดรึป่าว
เพราะมันแสดงข้อมูลซ้ำออกมาฮะ
select pt.pname, pt.fname, pt.lname,pt.informaddr, er_list, er_dch_type.name ,YEAR( FROM_DAYS( DATEDIFF( NOW( ) , pt.birthday ) ) ) as Age ,
from vn_stat ov ,patient pt ,er_regist rg ,er_dch_type , er_oper_code
where ov.vn=rg.vn and pt.hn=ov.hn and er_pt_type= '5'
ผลตรงที่เป็น er_dch_type.name
มันออกมาซ้ำๆฮะ
-
" , " เกินมา หน้า from vn_stat
ไม่น่า นำ er_list มาด้วย ทุก vn มีหลายกิจกรรม
group by ov.vn ซะครับ...
-
" , " เกินมา หน้า from vn_stat
ตาดีนะครับ
select pt.pname, pt.fname, pt.lname,pt.informaddr, er_list, er_dch_type.name ,YEAR( FROM_DAYS( DATEDIFF( NOW( ) , pt.birthday ) ) ) as Age from vn_stat ov ,patient pt ,er_regist rg ,er_dch_type , er_oper_code
where ov.vn=rg.vn and pt.hn=ov.hn and er_pt_type= '5'
-
" , " เกินมา หน้า from vn_stat
ไม่น่า นำ er_list มาด้วย ทุก vn มีหลายกิจกรรม
group by ov.vn ซะครับ...
แหะๆ คอมม่านี้เหนแล้วฮะตอนรันมันพ้องเออเร่อมาแล้ว T^T
ที่เอา er_list มาด้วยเพราะอยากได้ การรักษา
อ้ออีกอย่างคับ อยากได้ อาการด้วย ต้องไปดึงฟิลมาจาก table ไหนฮ่ะ
ปล.ลองรันออกมาแล้วหน้าตามันเป็นเยี่ยงนี้อ่ะครับ
ซึ่งผลมันยังผิดอยู่ เพราะสถานะที่แสดงมันต้องเป็น 'กลับบ้าน' ฮะ ???
-
" , " เกินมา หน้า from vn_stat
ไม่น่า นำ er_list มาด้วย ทุก vn มีหลายกิจกรรม
group by ov.vn ซะครับ...
แหะๆ คอมม่านี้เหนแล้วฮะตอนรันมันพ้องเออเร่อมาแล้ว T^T
ที่เอา er_list มาด้วยเพราะอยากได้ การรักษา
อ้ออีกอย่างคับ อยากได้ อาการด้วย ต้องไปดึงฟิลมาจาก table ไหนฮ่ะ
opdscreen ครับ...จับค่าที่ vn กับ vn ใน er_regist
-
" , " เกินมา หน้า from vn_stat
ไม่น่า นำ er_list มาด้วย ทุก vn มีหลายกิจกรรม
group by ov.vn ซะครับ...
แหะๆ คอมม่านี้เหนแล้วฮะตอนรันมันพ้องเออเร่อมาแล้ว T^T
ที่เอา er_list มาด้วยเพราะอยากได้ การรักษา
อ้ออีกอย่างคับ อยากได้ อาการด้วย ต้องไปดึงฟิลมาจาก table ไหนฮ่ะ
opdscreen ครับ...จับค่าที่ vn กับ vn ใน er_regist
ขอทำความเข้าใจและลองก่อนฮะ ???
งงมากเพราะ เพิ่งมาจับ sql ในรอบห้าปี
ทิ้งไปตั้งแต่สอบเส็ดตั้งแต่ตอนที่่เรียนเมื่อปีสาม
เพราะไม่คิดว่าตัวเองจะมาทำสายนี้ T__T
-
เอา from er_dch_type เป็นตารางหลักซิ...จะเร็วขึ้น...
join er_regist vn
join ovst vn
่
join patient ที่ hn ของ patient=er_ovst.hn
where vstdate between "xxxx-xx-xx" and "yyyy-yy-yy" and er_dch_type ="5"
-
สรุปใช้ query builder ช่วยฮะ แล้วเอามาแต่งเพิ่ม
ออกมาเลยกลายเป็นแบบนี้ฮะ
SELECT patient.pname, patient.fname, patient.lname, patient.informaddr, er_list,er_dch_type.name, opdscreen.cc , YEAR( FROM_DAYS( DATEDIFF( NOW( ) , patient.birthday ) ) ) as Age
FROM er_regist INNER JOIN
er_dch_type ON er_dch_type.er_dch_type = er_regist.er_dch_type INNER JOIN
vn_stat ON vn_stat.vn = er_regist.vn INNER JOIN
patient ON vn_stat.hn = patient.hn INNER JOIN
opdscreen ON opdscreen.vn = er_regist.vn
GROUP BY vn_stat.vn, patient.pname, patient.fname, patient.lname,
patient.birthday, patient.informaddr, er_regist.er_pt_type, opdscreen.cc
HAVING er_regist.er_pt_type = 5
-
สรุปใช้ query builder ช่วยฮะ แล้วเอามาแต่งเพิ่ม
ออกมาเลยกลายเป็นแบบนี้ฮะ
SELECT patient.pname, patient.fname, patient.lname, patient.informaddr, er_list,er_dch_type.name, opdscreen.cc , YEAR( FROM_DAYS( DATEDIFF( NOW( ) , patient.birthday ) ) ) as Age
FROM er_regist INNER JOIN
er_dch_type ON er_dch_type.er_dch_type = er_regist.er_dch_type INNER JOIN
vn_stat ON vn_stat.vn = er_regist.vn INNER JOIN
patient ON vn_stat.hn = patient.hn INNER JOIN
opdscreen ON opdscreen.vn = er_regist.vn
GROUP BY vn_stat.vn, patient.pname, patient.fname, patient.lname,
patient.birthday, patient.informaddr, er_regist.er_pt_type, opdscreen.cc
HAVING er_regist.er_pt_type = 5
ระวังเรื่อง "อายุ" นิดหนึ่งครับ
ควรใช้อายุ ณ วันที่มารับการรักษาครับ
อาจใช้ GetThaiAge ใน report designer แทนก็ได้ครับ