BMS-HOSxP Community

HOSxP => แจ้งปัญหา / ขอความช่วยเหลือ => ข้อความที่เริ่มโดย: panus_t ที่ มีนาคม 07, 2013, 10:34:50 AM

หัวข้อ: ดูคำสั่ง MySQL ให้หน่อยครับ
เริ่มหัวข้อโดย: panus_t ที่ มีนาคม 07, 2013, 10:34:50 AM
select an.spclty,sp.name,count(select sex from an_stat where sex="1") as sex1,count(select sex from an_stat where sex="2") as sex2
from ovst ov
left outer join an_stat an on an.vn=ov.vn
left outer join spclty sp on sp.spclty=vn.spclty
where an.regdate between "2011-06-01" and "2011-08-31" and an.ward="01"
group by an.spclty

จะหายอด IPD1 แยกตามแผนก นับแยก ชาย  หญิงครับ

 ;D
หัวข้อ: Re: ดูคำสั่ง MySQL ให้หน่อยครับ
เริ่มหัวข้อโดย: panus_t ที่ มีนาคม 07, 2013, 11:19:18 AM
ไม่ค่อยชำนาญครับ รู้แต่ว่ารูปแบบคำสั่งไม่ถูกครับ..  ;D
หัวข้อ: Re: ดูคำสั่ง MySQL ให้หน่อยครับ
เริ่มหัวข้อโดย: เกื้อกูล ครับ.. ที่ มีนาคม 07, 2013, 11:28:03 AM
ไม่ค่อยชำนาญครับ รู้แต่ว่ารูปแบบคำสั่งไม่ถูกครับ..  ;D

ลอง

select if(sex=1,"ชาย","หญิง"),sex,i.spclty,sp.name,count(a.an) as total from an_stat a
left outer join ipt i on i.an=a.an
left outer join spclty sp on sp.spclty=i.spclty
where i.dchdate between "2011-06-01" and "2011-08-31" and a.ward="01"
group by i.spclty
หัวข้อ: Re: ดูคำสั่ง MySQL ให้หน่อยครับ
เริ่มหัวข้อโดย: woravet ที่ มีนาคม 07, 2013, 11:53:08 AM
select a.spclty,s.name,sum(a.sex=1) Male,sum(a.sex=2) FeMale
from an_stat a
left join spclty s on a.spclty=s.spclty
where a.regdate between "2011-10-01" and "2012-09-30"
group by a.spclty
หัวข้อ: Re: ดูคำสั่ง MySQL ให้หน่อยครับ
เริ่มหัวข้อโดย: เกื้อกูล ครับ.. ที่ มีนาคม 07, 2013, 11:54:50 AM
select a.spclty,s.name,sum(a.sex=1) Male,sum(a.sex=2) FeMale
from an_stat a
left join spclty s on a.spclty=s.spclty
where a.regdate between "2011-10-01" and "2012-09-30"
group by a.spclty

เอ่อ !!!!1  นับยอด ผมว่า ไม่ควรจะนับจากวันรับ admit  ครับ...

ยอดคนไข้ประจำเดือน ของ IPD  ควรนับยอดจาก  วันจำหน่าย  dchdate  ครับ

นับจำนวน คนไข้  น่าจะ count มากกว่า  sum    นะครับ..

หรือผมสับสน.. ??? ??? ??? ??? ???
หัวข้อ: Re: ดูคำสั่ง MySQL ให้หน่อยครับ
เริ่มหัวข้อโดย: golf_win ที่ มีนาคม 07, 2013, 19:26:16 PM
ไม่ค่อยชำนาญครับ รู้แต่ว่ารูปแบบคำสั่งไม่ถูกครับ..  ;D

ลอง

select if(sex=1,"ชาย","หญิง"),sex,i.spclty,sp.name,count(a.an) as total from an_stat a
left outer join ipt i on i.an=a.an
left outer join spclty sp on sp.spclty=i.spclty
where i.dchdate between "2011-06-01" and "2011-08-31" and a.ward="01"
group by i.spclty

ถูกต้องตามนี้ครับ
หัวข้อ: Re: ดูคำสั่ง MySQL ให้หน่อยครับ
เริ่มหัวข้อโดย: udomchok ที่ มีนาคม 07, 2013, 22:05:02 PM
select if(sex=1,"ชาย","หญิง"),sex,i.spclty,sp.name,count(a.an) as total from an_stat a
left outer join ipt i on i.an=a.an
left outer join spclty sp on sp.spclty=i.spclty
where i.dchdate between "2011-06-01" and "2011-08-31" and a.ward="01"
group by i.spclty

ถ้าแบบนี้มันจะมารวมกันไม่แยกชาย/หญิงครับ โดยเจอเพศไหนก่อนจะแสดงข้อมูลรวมในเพศนั้น
ต้องเพิ่ม sex ใน group by เป็น

select if(sex=1,"ชาย","หญิง"),sex,i.spclty,sp.name,count(a.an) as total from an_stat a
left outer join ipt i on i.an=a.an
left outer join spclty sp on sp.spclty=i.spclty
where i.dchdate between "2011-06-01" and "2011-08-31" and a.ward="01"
group by i.spclty, sex

ผลลัพธ์จึงจะแยกตามเพศอีกทีครับ แต่จะแสดงใน 2 บรรทัด

ส่วนของท่านวรเวทย์ (เซียน SQL ตัวจริง)
select a.spclty,s.name,sum(a.sex=1) Male,sum(a.sex=2) FeMale
from an_stat a
left join spclty s on a.spclty=s.spclty
where a.regdate between "2011-10-01" and "2012-09-30"
group by a.spclty
จะแสดงออกมาในบรรทัดเดียวกันทั้งสองเพศ แยกเป็น 2 column ครับ

ปล. ตัวอย่างตามรูป ผมอนุมานนับตาม regdate ไปก่อน ถูก/ผิด แก้ไขได้ตามต้องการ (เช่น เปลี่ยนเป็น dchdate)
หัวข้อ: Re: ดูคำสั่ง MySQL ให้หน่อยครับ
เริ่มหัวข้อโดย: เกื้อกูล ครับ.. ที่ มีนาคม 07, 2013, 22:34:05 PM
ขอบคุณครับ..พี่โก้..และอ. วรเวท woravet...
 :o

ได้ความรู้เพิ่มแล้วครับ...ต้องรีบนำไปใช้บ่อย ๆ เด๋วจะลืมอีก... :) :) :) :)