BMS-HOSxP Community
HOSxP => แจ้งปัญหา / ขอความช่วยเหลือ => ข้อความที่เริ่มโดย: โรงพยาบาลอัมพวา ที่ มกราคม 19, 2011, 15:44:50 PM
-
ผมอยากจะกรุ๊บ pdx ให้เป็นกลุ่มๆ เช่นโรคเบาหวาน รหัส e101-e109 แล้วใช้โชว์เป็นกรุ็บๆ ว่ากรุ็บ นี้มีคนไข้กี่คน ทำได้ไหมครับ
select vn.pdx,i.name, k.department,count(op.vn) from opdscreen op
left outer join kskdepartment k on op.screen_dep = k.depcode
left outer join vn_stat vn on op.vn = vn.vn
left outer join icd101 i on vn.pdx =i.code
where op.vstdate between '2007-10-01' and '2008-09-30'
and k.depcode in ('027')
group by vn.pdx
-
ผมจะหาผลรวมของกรุ๊บ ในรูปครับ มันต้องเขียนยังไงครับท่านอาจาร์ย
-
ลองดูนะครับ ตรงสีแดง
select vn.pdx,i.name, k.department,count(op.vn) as cc from opdscreen op
left outer join kskdepartment k on op.screen_dep = k.depcode
left outer join vn_stat vn on op.vn = vn.vn
left outer join icd101 i on vn.pdx =i.code
where op.vstdate between '2007-10-01' and '2008-09-30'
and k.depcode in ('027')
group by vn.pdx
order by cc desc
ตามนี้เลยครับ
-
ลองดูนะครับ ตรงสีแดง
select vn.pdx,i.name, k.department,count(op.vn) as cc from opdscreen op
left outer join kskdepartment k on op.screen_dep = k.depcode
left outer join vn_stat vn on op.vn = vn.vn
left outer join icd101 i on vn.pdx =i.code
where op.vstdate between '2007-10-01' and '2008-09-30'
and k.depcode in ('027')
group by vn.pdx
order by cc desc
ตามนี้เลยครับ
รู้่สึก จะต้องกำหนด group ของ pdx ด้วยอ่ะครับ..เพราะเอาทั้ง B0%,B1%,B2%,B5% = 1 GROUP
-
ลองดูนะครับ ตรงสีแดง
select vn.pdx,i.name, k.department,count(op.vn) as cc from opdscreen op
left outer join kskdepartment k on op.screen_dep = k.depcode
left outer join vn_stat vn on op.vn = vn.vn
left outer join icd101 i on vn.pdx =i.code
where op.vstdate between '2007-10-01' and '2008-09-30'
and k.depcode in ('027')
group by vn.pdx
order by cc desc
ตามนี้เลยครับ
รู้่สึก จะต้องกำหนด group ของ pdx ด้วยอ่ะครับ..เพราะเอาทั้ง B0%,B1%,B2%,B5% = 1 GROUP
น่าจะ group ด้วยนะครับ ไม่งั้นจะออกตาม pdx เท่านั้น ;D ;D ;D
-
ลองดูนะครับ ตรงสีแดง
select vn.pdx,i.name, k.department,count(op.vn) as cc from opdscreen op
left outer join kskdepartment k on op.screen_dep = k.depcode
left outer join vn_stat vn on op.vn = vn.vn
left outer join icd101 i on vn.pdx =i.code
where op.vstdate between '2007-10-01' and '2008-09-30'
and k.depcode in ('027')
group by vn.pdx
order by cc desc
ตามนี้เลยครับ
รู้่สึก จะต้องกำหนด group ของ pdx ด้วยอ่ะครับ..เพราะเอาทั้ง B0%,B1%,B2%,B5% = 1 GROUP
คำสั่ง GROUP เขียนยังไงอ่ะครับ and B0%,B1%,B2%,B5% = 1 GROUP เลยเหรอครับลองเขียนแล้วไม่ได้ครับ แล้วเรียกโชว์ยังไงอ่ะครับ
-
ลองดูนะครับ ตรงสีแดง
select vn.pdx,i.name, k.department,count(op.vn) as cc from opdscreen op
left outer join kskdepartment k on op.screen_dep = k.depcode
left outer join vn_stat vn on op.vn = vn.vn
left outer join icd101 i on vn.pdx =i.code
where op.vstdate between '2007-10-01' and '2008-09-30'
and k.depcode in ('027')
group by vn.pdx
order by cc desc
ตามนี้เลยครับ
รู้่สึก จะต้องกำหนด group ของ pdx ด้วยอ่ะครับ..เพราะเอาทั้ง B0%,B1%,B2%,B5% = 1 GROUP
น่าจะ group ด้วยนะครับ ไม่งั้นจะออกตาม pdx เท่านั้น ;D ;D ;D
ขอบคุณนะครับ
-
อันนี้ ยังแก้ไม่หายนะครับไม่ทราบวิธีการเขียนคำสั่งกรุ๊บ
ผมมีอีกปัญหาครับ
select distinct pt.hn ,concat(pt.pname,pt.fname,' ',pt.lname)as name ,vn.sex ,
lo.lab_items_name_ref, lo.lab_order_result,
lo1.lab_items_name_ref, lo1.lab_order_result,
lo2.lab_items_name_ref, lo2.lab_order_result,
lo3.lab_items_name_ref, lo3.lab_order_result,
ov.vstdate,op.bpd AS BP_hi,op.bps AS BP_down, op.bw,op.height,
op.bw/((op.height/100)*(op.height/100)) as BMI , vn.age_y ,cn.clinic,
op.fh ,op.sh
from vn_stat vn
left outer join patient pt on vn.hn = pt.hn
left outer join ovst ov on vn.hn = ov.hn
left outer join clinic cl on vn.pdx = cl.icd10
left outer join clinicmember cn on vn.hn = cn.hn
left outer join opdscreen op on vn.hn = op.hn
left outer join lab_head lh on vn.hn = lh.hn
left outer join lab_order lo on lh.lab_order_number = lo.lab_order_number
left outer join lab_order lo1 on lh.lab_order_number = lo1.lab_order_number
left outer join lab_order lo2 on lh.lab_order_number = lo2.lab_order_number
left outer join lab_order lo3 on lh.lab_order_number = lo3.lab_order_number
where vn.vstdate between '2010-11-1' and '2010-11-30'
and cn.clinic = '001'
and lo.lab_items_code = '39'
and lo1.lab_items_code = '296'
and lo2.lab_items_code = '127'
and lo3.lab_items_code = '397'
group by op.hn
limit 10
ถ้า group by รันไม่ไปเลย ครับ ค้าง ทั้งระบบเลย ครับ ควรทำอย่างไรดีครับ
-
อันนี้ ยังแก้ไม่หายนะครับไม่ทราบวิธีการเขียนคำสั่งกรุ๊บ
ผมมีอีกปัญหาครับ
select distinct pt.hn ,concat(pt.pname,pt.fname,' ',pt.lname)as name ,vn.sex ,
lo.lab_items_name_ref, lo.lab_order_result,
lo1.lab_items_name_ref, lo1.lab_order_result,
lo2.lab_items_name_ref, lo2.lab_order_result,
lo3.lab_items_name_ref, lo3.lab_order_result,
ov.vstdate,op.bpd AS BP_hi,op.bps AS BP_down, op.bw,op.height,
op.bw/((op.height/100)*(op.height/100)) as BMI , vn.age_y ,cn.clinic,
op.fh ,op.sh
from vn_stat vn
left outer join patient pt on vn.hn = pt.hn
left outer join ovst ov on vn.hn = ov.hn
left outer join clinic cl on vn.pdx = cl.icd10
left outer join clinicmember cn on vn.hn = cn.hn
left outer join opdscreen op on vn.hn = op.hn
left outer join lab_head lh on vn.hn = lh.hn
left outer join lab_order lo on lh.lab_order_number = lo.lab_order_number
left outer join lab_order lo1 on lh.lab_order_number = lo1.lab_order_number
left outer join lab_order lo2 on lh.lab_order_number = lo2.lab_order_number
left outer join lab_order lo3 on lh.lab_order_number = lo3.lab_order_number
where vn.vstdate between '2010-11-1' and '2010-11-30'
and cn.clinic = '001'
and lo.lab_items_code = '39'
and lo1.lab_items_code = '296'
and lo2.lab_items_code = '127'
and lo3.lab_items_code = '397'
group by op.hn
limit 10
ถ้า group by รันไม่ไปเลย ครับ ค้าง ทั้งระบบเลย ครับ ควรทำอย่างไรดีครับ
ลอง join icd101 ซ้อนกันหลาย ๆตารางครับ...loin ตัวเอง..แต่ว่าเปลี่ยนคำเรียกเป็น i1, i2, i3 โดยกำหนดเอาเลยว่า ประมาณนี้
left outer join icd101 i1 on i1.code = v.pdx and i1.code in ("A010","A599")
left outer join icd101 i2 on i2.code = v.pdx and i2.code in ("b010","b599"))
left outer join icd101 i3 on i3.code = v.pdx and i3.code in ("C010","C599")
ประมาณครับ...
-
ลองดูในนี้ได้มั้ยทำเป็น 10 อันดับกลุ่มโรคอะครับแต่ปรับเอานะครับ
-
ขอบคุณครับ ท่าน นี่ อีกตัว นะครับ คนละตัวกับ ตัวแรก
รันไม่ได้ครับ เวลารันแล้วเครื่องค้างระะบบค้างด้วยครับ
select distinct pt.hn ,concat(pt.pname,pt.fname,' ',pt.lname)as name ,vn.sex ,
lo.lab_items_name_ref, lo.lab_order_result,
lo1.lab_items_name_ref, lo1.lab_order_result,
lo2.lab_items_name_ref, lo2.lab_order_result,
lo3.lab_items_name_ref, lo3.lab_order_result,
ov.vstdate,op.bpd AS BP_hi,op.bps AS BP_down, op.bw,op.height,
op.bw/((op.height/100)*(op.height/100)) as BMI , vn.age_y ,cn.clinic,
op.fh ,op.sh
from vn_stat vn
left outer join patient pt on vn.hn = pt.hn
left outer join ovst ov on vn.hn = ov.hn
left outer join clinic cl on vn.pdx = cl.icd10
left outer join clinicmember cn on vn.hn = cn.hn
left outer join opdscreen op on vn.hn = op.hn
left outer join lab_head lh on vn.hn = lh.hn
left outer join lab_order lo on lh.lab_order_number = lo.lab_order_number
left outer join lab_order lo1 on lh.lab_order_number = lo1.lab_order_number
left outer join lab_order lo2 on lh.lab_order_number = lo2.lab_order_number
left outer join lab_order lo3 on lh.lab_order_number = lo3.lab_order_number
where vn.vstdate between '2010-11-1' and '2010-11-30'
and cn.clinic = '001'
and lo.lab_items_code = '39'
and lo1.lab_items_code = '296'
and lo2.lab_items_code = '127'
and lo3.lab_items_code = '397'
limit 10
มีวีธีทำไหมครับไม่ให้มันค้างอ่ะครับท่าน