BMS-HOSxP Community

HOSxP => แจ้งปัญหา / ขอความช่วยเหลือ => ข้อความที่เริ่มโดย: niyomstd ที่ พฤศจิกายน 09, 2010, 11:02:10 AM

หัวข้อ: ขอความช่วยเหลือเรื่อง SQL ครับ
เริ่มหัวข้อโดย: niyomstd ที่ พฤศจิกายน 09, 2010, 11:02:10 AM
ขอความ ช่วยเหลือหน่อยครับ เราจะนับ จำนวนครั้ง หญิงตั้งครรภ์มา visit ทั้งหมดได้อย่างไรครับ
เพิ่มเติมให้ด้วยครับ ขอบคุณครับ
select p.pname,p.fname,p.lname,p.age_y,p.patient_hn,p2.bw,p2.height,p2.albumin,p2.sugar,a.blood_vdrl1_result,a.blood_vdrl2_result,a.blood_hiv1_result,a.blood_hiv2_result,
a.blood_of_result,a.blood_hct_result,a.preg_no ,a.current_preg_age,p1.pa_week,o.bps,o.bpd
 from person_anc a
 left outer join person p on p.person_id = a.person_id
 left outer join house h on h.house_id = p.house_id
 left outer join village v on v.village_id = p.village_id
 left outer join labor_status ats on ats.labor_status_id = a.labor_status_id
 left outer join thaiaddress t on t.addressid = v.address_id
 left outer join person_anc_service p1 on a.person_anc_id=p1.person_anc_id
 left outer join person_anc_screen p2 on p2.person_anc_service_id = p1.person_anc_service_id
 left outer join patient pt on pt.cid=p.cid
 left outer join opdscreen o on o.hn=pt.hn
 where (a.discharge <> 'Y' or a.discharge is null)  and ats.labor_status_name="&Acirc;&Ntilde;&sect;&auml;&Aacute;&egrave;&curren;&Aring;&Iacute;&acute;"
 group by p.cid
 order by a.person_anc_no

 :) :) :)
ตรง ats.labor_status_name="ยังไม่คลอด"เป็นสถานะครับ
หัวข้อ: Re: ขอความช่วยเหลือเรื่อง SQL ครับ
เริ่มหัวข้อโดย: niyomstd ที่ พฤศจิกายน 09, 2010, 11:48:56 AM
ตกไปแล้ว ดันหน่อยครับ
หัวข้อ: Re: ขอความช่วยเหลือเรื่อง SQL ครับ
เริ่มหัวข้อโดย: [-_เอ็ม_-] ที่ พฤศจิกายน 09, 2010, 13:04:59 PM
select count(ov.hn) as visit,p.pname,p.fname,p.lname,p.age_y,p.patient_hn,p2.bw,p2.height,p2.albumin,p2.sugar,a.blood_vdrl1_result,a.blood_vdrl2_result,a.blood_hiv1_result,a.blood_hiv2_result,
a.blood_of_result,a.blood_hct_result,a.preg_no ,a.current_preg_age,p1.pa_week,o.bps,o.bpd
 from person_anc a
 left outer join person p on p.person_id = a.person_id
 left outer join house h on h.house_id = p.house_id
 left outer join village v on v.village_id = p.village_id
 left outer join labor_status ats on ats.labor_status_id = a.labor_status_id
 left outer join thaiaddress t on t.addressid = v.address_id
 left outer join person_anc_service p1 on a.person_anc_id=p1.person_anc_id
 left outer join person_anc_screen p2 on p2.person_anc_service_id = p1.person_anc_service_id
 left outer join patient pt on pt.cid=p.cid
 left outer join opdscreen o on o.hn=pt.hn
 left outer join ovst ov on ov.hn = p.patient_hn
 where (a.discharge <> 'Y' or a.discharge is null)  and ats.labor_status_name="ยังไม่คลอด"
 group by p.cid
 order by a.person_anc_no

ลอง Test ดู ครับผม  ;)
หัวข้อ: Re: ขอความช่วยเหลือเรื่อง SQL ครับ
เริ่มหัวข้อโดย: nahos ที่ พฤศจิกายน 09, 2010, 13:36:44 PM
อ้างถึง
เราจะนับ จำนวนครั้ง หญิงตั้งครรภ์มา visit ทั้งหมดได้อย่างไร

จะเอา 1 คน มา visit กี่ครั้ง
หรือทั้งหมด มากี่ visit

ผมว่าใช้ varaible น่าจะชัวร์นะกว่าครับ

หัวข้อ: Re: ขอความช่วยเหลือเรื่อง SQL ครับ
เริ่มหัวข้อโดย: niyomstd ที่ พฤศจิกายน 09, 2010, 13:47:16 PM
ลองแล้วครับ ข้อมูลเยอะเกินไปครับตามรูปครับ
หัวข้อ: Re: ขอความช่วยเหลือเรื่อง SQL ครับ
เริ่มหัวข้อโดย: thannawe ที่ พฤศจิกายน 09, 2010, 14:02:06 PM
Variable ช่วยได้ครับ ;D :D
หัวข้อ: Re: ขอความช่วยเหลือเรื่อง SQL ครับ
เริ่มหัวข้อโดย: nahos ที่ พฤศจิกายน 09, 2010, 14:08:29 PM
ลองใช้ varaible นี้นะครับ
อ้างถึง
  Value :=GetSQLIntegerData('select count(*) as visit_count'+
      ' from  person_anc a left outer join labor_status ats on ats.labor_status_id = a.labor_status_id '+
      ' where (a.discharge <> 'Y' or a.discharge is null)  and ats.labor_status_name="ÂѧäÁè¤ÅÍ´" where a.person_id="'+ DBPipeline['person_id']  +'"');
หัวข้อ: Re: ขอความช่วยเหลือเรื่อง SQL ครับ
เริ่มหัวข้อโดย: niyomstd ที่ พฤศจิกายน 09, 2010, 14:23:02 PM
ลองใช้ varaible นี้นะครับ
อ้างถึง
  Value :=GetSQLIntegerData('select count(*) as visit_count'+
      ' from  person_anc a left outer join labor_status ats on ats.labor_status_id = a.labor_status_id '+
      ' where (a.discharge <> 'Y' or a.discharge is null)  and ats.labor_status_name="&Acirc;&Ntilde;&sect;&auml;&Aacute;&egrave;&curren;&Aring;&Iacute;&acute;" where a.person_id="'+ DBPipeline['person_id']  +'"');
เดี๋ยวจะลองดูนะครับ
ขอบคุณครับ
หัวข้อ: Re: ขอความช่วยเหลือเรื่อง SQL ครับ
เริ่มหัวข้อโดย: niyomstd ที่ พฤศจิกายน 09, 2010, 14:58:20 PM
จำนวนครั้งยังไม่ออกครับ  :) :) :)
หัวข้อ: Re: ขอความช่วยเหลือเรื่อง SQL ครับ
เริ่มหัวข้อโดย: niyomstd ที่ พฤศจิกายน 09, 2010, 15:39:43 PM
ใกล้จะตกแล้ว ดันนิดครับ  :) :)
หัวข้อ: Re: ขอความช่วยเหลือเรื่อง SQL ครับ
เริ่มหัวข้อโดย: woravet ที่ พฤศจิกายน 09, 2010, 16:51:50 PM
select ifnull(p.patient_hn,pt.hn) 'hn',p.cid,p.pname,p.fname,p.lname,p.age_y
,p2.bpd,p2.bps,p2.bw,p2.height
,p2.albumin,p2.sugar
,a.blood_vdrl1_result,a.blood_vdrl2_result,a.blood_hiv1_result,a.blood_hiv2_result
,a.blood_of_result,a.blood_hct_result,a.preg_no ,a.current_preg_age,p1.pa_week
,count(*) visit
from person_anc a
left join person p on p.person_id = a.person_id
left join patient pt on p.cid=pt.cid
left join person_anc_service p1 on a.person_anc_id=p1.person_anc_id
left join person_anc_screen p2 on p2.person_anc_service_id=p1.person_anc_service_id
where p1.anc_service_date between '2010-1-1' and '2010-1-31'
group by p.cid
หัวข้อ: Re: ขอความช่วยเหลือเรื่อง SQL ครับ
เริ่มหัวข้อโดย: nahos ที่ พฤศจิกายน 09, 2010, 17:08:32 PM
ผมลืมเข้าไปดูตาราง person_anc ครับ นึกว่าจะเก็บ visit  จริง ๆ ต้องนับจาก person_anc_service
ลองใช้ varaible นี้นะครับ
อ้างถึง
  Value :=GetSQLIntegerData('select count(*) as visit_count'+
      ' from  person_anc a left outer join labor_status ats on ats.labor_status_id = a.labor_status_id '+
      ' where (a.discharge <> 'Y' or a.discharge is null)  and ats.labor_status_name="ÂѧäÁè¤ÅÍ´" where a.person_id="'+ DBPipeline['person_id']  +'"');


ลองดูครับ แก้ไขให้แล้ว

ปล.ไปอบรมเชียงใหม่ไหมครับปลายปี ;D
หัวข้อ: Re: ขอความช่วยเหลือเรื่อง SQL ครับ
เริ่มหัวข้อโดย: niyomstd ที่ พฤศจิกายน 10, 2010, 08:14:33 AM
ก้อว่าครับ ไม่รู้ว่า ผอ อนุมัติเปล่าครับ ถ้าอนุมัติคงได้เจอกันครับ  ;D ;D ;D