ผู้เขียน หัวข้อ: ดูคำสั่ง MySQL ให้หน่อยครับ  (อ่าน 6602 ครั้ง)

0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้

ออฟไลน์ panus_t

  • Hero Member
  • *****
  • กระทู้: 2,368
  • Respect: +8
    • ดูรายละเอียด
ดูคำสั่ง MySQL ให้หน่อยครับ
« เมื่อ: มีนาคม 07, 2013, 10:34:50 AM »
0
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
โรงพยาบาลเสิงสาง จ.นครราชสีมา (ขนาด  60  เตียง ปี2554)  ขึ้นระบบโดยทีมงาน BMS  เมื่อเดือนเมษายน 2551
ก่อนหน้านั้นขึ้นระบบเมื่อ 07/07/07 ฤกษ์ดี  Master Server  IBM System x3500M4  RAM ECC 24 GB. HardDisk SAS 450x3 GB. ServerRAID M1100 Series Zero RAID5  OS:CentOS 6.4  MySQLPercona : 5.5.30-30.1

ออฟไลน์ panus_t

  • Hero Member
  • *****
  • กระทู้: 2,368
  • Respect: +8
    • ดูรายละเอียด
Re: ดูคำสั่ง MySQL ให้หน่อยครับ
« ตอบกลับ #1 เมื่อ: มีนาคม 07, 2013, 11:19:18 AM »
0
ไม่ค่อยชำนาญครับ รู้แต่ว่ารูปแบบคำสั่งไม่ถูกครับ..  ;D
โรงพยาบาลเสิงสาง จ.นครราชสีมา (ขนาด  60  เตียง ปี2554)  ขึ้นระบบโดยทีมงาน BMS  เมื่อเดือนเมษายน 2551
ก่อนหน้านั้นขึ้นระบบเมื่อ 07/07/07 ฤกษ์ดี  Master Server  IBM System x3500M4  RAM ECC 24 GB. HardDisk SAS 450x3 GB. ServerRAID M1100 Series Zero RAID5  OS:CentOS 6.4  MySQLPercona : 5.5.30-30.1

ออฟไลน์ เกื้อกูล ครับ..

  • Hero Member
  • *****
  • กระทู้: 12,611
  • Respect: +169
    • ดูรายละเอียด
    • โรงพยาบาลปากท่อ
Re: ดูคำสั่ง MySQL ให้หน่อยครับ
« ตอบกลับ #2 เมื่อ: มีนาคม 07, 2013, 11:28:03 AM »
0
ไม่ค่อยชำนาญครับ รู้แต่ว่ารูปแบบคำสั่งไม่ถูกครับ..  ;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
Implement  HOSxP  Start 2548 ---> NOW!
Station : 130 Client   V.3 Version  3.67.1.XX
Server  : CENTOS  +MySQL maria 10.x.x

ออฟไลน์ woravet

  • Sr. Member
  • ****
  • กระทู้: 409
  • Respect: +12
    • ดูรายละเอียด
Re: ดูคำสั่ง MySQL ให้หน่อยครับ
« ตอบกลับ #3 เมื่อ: มีนาคม 07, 2013, 11:53:08 AM »
0
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
รพ.บึงสามัคคี จ.กำแพงเพชร
*********************
อ.สุชัยและคณะ ขึ้นระบบ 29 ตค.49(Linux+Fedara 5)
*********************
ปัจจุบัน
HOSxP version 3.53.4.27
Server:Windows XP SP2,MySQL 5
Client ประมาณ 15 เครื่อง

ออฟไลน์ เกื้อกูล ครับ..

  • Hero Member
  • *****
  • กระทู้: 12,611
  • Respect: +169
    • ดูรายละเอียด
    • โรงพยาบาลปากท่อ
Re: ดูคำสั่ง MySQL ให้หน่อยครับ
« ตอบกลับ #4 เมื่อ: มีนาคม 07, 2013, 11:54:50 AM »
0
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    นะครับ..

หรือผมสับสน.. ??? ??? ??? ??? ???
Implement  HOSxP  Start 2548 ---> NOW!
Station : 130 Client   V.3 Version  3.67.1.XX
Server  : CENTOS  +MySQL maria 10.x.x

ออฟไลน์ golf_win

  • Hero Member
  • *****
  • กระทู้: 3,481
  • Respect: +112
    • ดูรายละเอียด
Re: ดูคำสั่ง MySQL ให้หน่อยครับ
« ตอบกลับ #5 เมื่อ: มีนาคม 07, 2013, 19:26:16 PM »
0
ไม่ค่อยชำนาญครับ รู้แต่ว่ารูปแบบคำสั่งไม่ถูกครับ..  ;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

ถูกต้องตามนี้ครับ
โรงพยาบาลเจ็ดเสมียน จังหวัดราชบุรี
Start 19-1-51    35 station
HOSxP  3.59.5.18 Activate License
Tel. 032-305096-7 ต่อ 118
Web. http://csmhos.thaiddns.com:8080
         http://csmhos.thaieasydns.com:8080

ออฟไลน์ udomchok

  • Hero Member
  • *****
  • กระทู้: 8,349
  • Respect: +589
    • ดูรายละเอียด
    • ร.พ.สมเด็จพระสังฆราช องค์ที่ 17
Re: ดูคำสั่ง MySQL ให้หน่อยครับ
« ตอบกลับ #6 เมื่อ: มีนาคม 07, 2013, 22:05:02 PM »
0
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)
ทำด้วยหัวใจร.พ.สมเด็จพระสังฆราช องค์ที่ 17 อ.สองพี่น้อง จ.สุพรรณบุรี
อบรมโดย BMS Team เมื่อ พ.ย. 49 ขึ้นระบบห้องบัตรเมื่อ X'Mas 2007
2008 : X-Ray กายภาพบำบัด แพทย์แผนไทย กิจกรรมบำบัด OPD ตา
2009 : ทันตกรรม ห้องตรวจตา OPD (พยาบาลและห้องตรวจแพทย์บางห้อง)

ออฟไลน์ เกื้อกูล ครับ..

  • Hero Member
  • *****
  • กระทู้: 12,611
  • Respect: +169
    • ดูรายละเอียด
    • โรงพยาบาลปากท่อ
Re: ดูคำสั่ง MySQL ให้หน่อยครับ
« ตอบกลับ #7 เมื่อ: มีนาคม 07, 2013, 22:34:05 PM »
0
ขอบคุณครับ..พี่โก้..และอ. วรเวท woravet...
 :o

ได้ความรู้เพิ่มแล้วครับ...ต้องรีบนำไปใช้บ่อย ๆ เด๋วจะลืมอีก... :) :) :) :)
Implement  HOSxP  Start 2548 ---> NOW!
Station : 130 Client   V.3 Version  3.67.1.XX
Server  : CENTOS  +MySQL maria 10.x.x