ผู้เขียน หัวข้อ: การเขียนคำสั่งเพื่อดึงข้อมูล FBS รายบุคคล ในปีงบประมาณ  (อ่าน 3544 ครั้ง)

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

ออฟไลน์ udomchok

  • Hero Member
  • *****
  • กระทู้: 8,357
  • Respect: +589
    • ดูรายละเอียด
    • ร.พ.สมเด็จพระสังฆราช องค์ที่ 17
คำถาม :
พอจะมีคำสั่งที่แสดงhnนี้แล้วให้ข้อมูลที่อยู่คนละvisitรวมเป็นแถวเดียว ได้มั้ยครับ
เอา visit ล่าสุดในเดือนครับ
(https://www.facebook.com/groups/hosxp/permalink/1013295938690078/)
« แก้ไขครั้งสุดท้าย: กรกฎาคม 06, 2015, 22:50:32 PM โดย udomchok »
ทำด้วยหัวใจร.พ.สมเด็จพระสังฆราช องค์ที่ 17 อ.สองพี่น้อง จ.สุพรรณบุรี
อบรมโดย BMS Team เมื่อ พ.ย. 49 ขึ้นระบบห้องบัตรเมื่อ X'Mas 2007
2008 : X-Ray กายภาพบำบัด แพทย์แผนไทย กิจกรรมบำบัด OPD ตา
2009 : ทันตกรรม ห้องตรวจตา OPD (พยาบาลและห้องตรวจแพทย์บางห้อง)

ออฟไลน์ udomchok

  • Hero Member
  • *****
  • กระทู้: 8,357
  • Respect: +589
    • ดูรายละเอียด
    • ร.พ.สมเด็จพระสังฆราช องค์ที่ 17
คำตอบ :
select hn, sum(Octo) as 'ต.ค.', sum(Nov) as 'พ.ย.', sum(Dece) as 'ธ.ค.', sum(Jan) as 'ม.ค.', sum(Feb) as 'ก.พ.', sum(Mar) as 'มี.ค.', sum(Apr) as 'เม.ย.', sum(May) as 'พ.ค.', sum(Jun) as 'มิ.ย.', sum(Jul) as 'ก.ค.', sum(Aug) as 'ส.ค.',sum(Sep) as 'ก.ย.' from (
select hn,
if(month(vstdate)=10,fbs,'') as Octo,
if(month(vstdate)=11,fbs,'') as Nov,
if(month(vstdate)=12,fbs,'') as Dece,
if(month(vstdate)=1,fbs,'') as Jan,
if(month(vstdate)=2,fbs,'') as Feb,
if(month(vstdate)=3,fbs,'') as Mar,
if(month(vstdate)=4,fbs,'') as Apr,
if(month(vstdate)=5,fbs,'') as May,
if(month(vstdate)=6,fbs,'') as Jun,
if(month(vstdate)=7,fbs,'') as Jul,
if(month(vstdate)=8,fbs,'') as Aug,
if(month(vstdate)=9,fbs,'') as Sep
from opdscreen
where vstdate between "2012-10-01" and "2013-09-30" and fbs > 0
group by hn, month(vstdate)
) as t
group by hn
« แก้ไขครั้งสุดท้าย: กรกฎาคม 03, 2015, 16:52:20 PM โดย udomchok »
ทำด้วยหัวใจร.พ.สมเด็จพระสังฆราช องค์ที่ 17 อ.สองพี่น้อง จ.สุพรรณบุรี
อบรมโดย BMS Team เมื่อ พ.ย. 49 ขึ้นระบบห้องบัตรเมื่อ X'Mas 2007
2008 : X-Ray กายภาพบำบัด แพทย์แผนไทย กิจกรรมบำบัด OPD ตา
2009 : ทันตกรรม ห้องตรวจตา OPD (พยาบาลและห้องตรวจแพทย์บางห้อง)

ออฟไลน์ B.nattha

  • Jr. Member
  • **
  • กระทู้: 62
  • Respect: +7
    • ดูรายละเอียด
เยี่ยมเลยครับอาจารย์ ขอบคุณครับ
สวิตตา ชมทอง
เจ้าพนักงานเภสัชกรรมชำนาญงาน
รพช.ลาดหลุมแก้ว ปทุมธานี
Server Master Acer AT350 Series Ram 16 G CentOS 6.5 Database MySQL Percona 5.5.27-28
Server Slave Dell PowerEdge T20 Ram 12 G CentOS 6.5 Database MySQL Percona 5.5.35-33

ออฟไลน์ udomchok

  • Hero Member
  • *****
  • กระทู้: 8,357
  • Respect: +589
    • ดูรายละเอียด
    • ร.พ.สมเด็จพระสังฆราช องค์ที่ 17
มาแนวเดียวกัน https://www.facebook.com/groups/hosxp/permalink/1014940185192320/

คำถาม :
ขอ query แบบนี้พอจะมีมั้ยครับ
ทำด้วยหัวใจร.พ.สมเด็จพระสังฆราช องค์ที่ 17 อ.สองพี่น้อง จ.สุพรรณบุรี
อบรมโดย BMS Team เมื่อ พ.ย. 49 ขึ้นระบบห้องบัตรเมื่อ X'Mas 2007
2008 : X-Ray กายภาพบำบัด แพทย์แผนไทย กิจกรรมบำบัด OPD ตา
2009 : ทันตกรรม ห้องตรวจตา OPD (พยาบาลและห้องตรวจแพทย์บางห้อง)

ออฟไลน์ udomchok

  • Hero Member
  • *****
  • กระทู้: 8,357
  • Respect: +589
    • ดูรายละเอียด
    • ร.พ.สมเด็จพระสังฆราช องค์ที่ 17
คำตอบ :
Step 1
==============================================
select lh.hn, lh.vn, if(lab_items_code=801,lo.lab_order_result,"") as FBS, if(lab_items_code=738,lo.lab_order_result,"") as CHO, if(lab_items_code=739,lo.lab_order_result,"") as TG, if(lab_items_code=740,lo.lab_order_result,"") as HDL, if(lab_items_code=868,lo.lab_order_result,"") as LDL
from lab_head lh
join lab_order lo on lo.lab_order_number=lh.lab_order_number
where lh.order_date between "2013-10-01" and "2013-10-31"
and lo.lab_items_code in (801,738,739,740,868)
order by vn
ทำด้วยหัวใจร.พ.สมเด็จพระสังฆราช องค์ที่ 17 อ.สองพี่น้อง จ.สุพรรณบุรี
อบรมโดย BMS Team เมื่อ พ.ย. 49 ขึ้นระบบห้องบัตรเมื่อ X'Mas 2007
2008 : X-Ray กายภาพบำบัด แพทย์แผนไทย กิจกรรมบำบัด OPD ตา
2009 : ทันตกรรม ห้องตรวจตา OPD (พยาบาลและห้องตรวจแพทย์บางห้อง)

ออฟไลน์ udomchok

  • Hero Member
  • *****
  • กระทู้: 8,357
  • Respect: +589
    • ดูรายละเอียด
    • ร.พ.สมเด็จพระสังฆราช องค์ที่ 17
คำตอบ (ต่อ) :
Step 2 จับมารวมกันซะ
========================================
select t.hn, t.vn, sum(t.FBS) as fbs, sum(t.CHO) as cho, sum(t.TG) as tg, sum(t.HDL) as hdl, sum(t.LDL) as ldl
from (
select lh.hn, lh.vn, if(lab_items_code=801,lo.lab_order_result,"") as FBS, if(lab_items_code=738,lo.lab_order_result,"") as CHO, if(lab_items_code=739,lo.lab_order_result,"") as TG, if(lab_items_code=740,lo.lab_order_result,"") as HDL, if(lab_items_code=868,lo.lab_order_result,"") as LDL
from lab_head lh
join lab_order lo on lo.lab_order_number=lh.lab_order_number
where lh.order_date between "2013-10-01" and "2013-10-31"
and lo.lab_items_code in (801,738,739,740,868)) as t
group by t.vn
order by t.vn
ทำด้วยหัวใจร.พ.สมเด็จพระสังฆราช องค์ที่ 17 อ.สองพี่น้อง จ.สุพรรณบุรี
อบรมโดย BMS Team เมื่อ พ.ย. 49 ขึ้นระบบห้องบัตรเมื่อ X'Mas 2007
2008 : X-Ray กายภาพบำบัด แพทย์แผนไทย กิจกรรมบำบัด OPD ตา
2009 : ทันตกรรม ห้องตรวจตา OPD (พยาบาลและห้องตรวจแพทย์บางห้อง)

ออฟไลน์ udomchok

  • Hero Member
  • *****
  • กระทู้: 8,357
  • Respect: +589
    • ดูรายละเอียด
    • ร.พ.สมเด็จพระสังฆราช องค์ที่ 17
ท่านเดิมถามผมต่อทิ้งท้ายไว้ในกระทู้แรก และกระทู้ที่ 2
คำถาม :
ถ้าข้อมูลเป็น string จะรวมยังไงครับ (https://www.facebook.com/groups/hosxp/permalink/1013295938690078/?comment_id=1014853581867647)
ทำด้วยหัวใจร.พ.สมเด็จพระสังฆราช องค์ที่ 17 อ.สองพี่น้อง จ.สุพรรณบุรี
อบรมโดย BMS Team เมื่อ พ.ย. 49 ขึ้นระบบห้องบัตรเมื่อ X'Mas 2007
2008 : X-Ray กายภาพบำบัด แพทย์แผนไทย กิจกรรมบำบัด OPD ตา
2009 : ทันตกรรม ห้องตรวจตา OPD (พยาบาลและห้องตรวจแพทย์บางห้อง)

ออฟไลน์ udomchok

  • Hero Member
  • *****
  • กระทู้: 8,357
  • Respect: +589
    • ดูรายละเอียด
    • ร.พ.สมเด็จพระสังฆราช องค์ที่ 17
จัดไป
คำตอบ :
Step 1 : ทดสอบทำแบบเดิม
===============================================
select lh.hn, lh.vn, if(lab_items_code=358,lo.lab_order_result,"") as HBsAb, if(lab_items_code=360,lo.lab_order_result,"") as HBsAg
from lab_head lh
join lab_order lo on lo.lab_order_number=lh.lab_order_number
where lh.order_date between "2013-10-01" and "2013-10-31"
and lo.lab_items_code in (358,360)
order by vn
ทำด้วยหัวใจร.พ.สมเด็จพระสังฆราช องค์ที่ 17 อ.สองพี่น้อง จ.สุพรรณบุรี
อบรมโดย BMS Team เมื่อ พ.ย. 49 ขึ้นระบบห้องบัตรเมื่อ X'Mas 2007
2008 : X-Ray กายภาพบำบัด แพทย์แผนไทย กิจกรรมบำบัด OPD ตา
2009 : ทันตกรรม ห้องตรวจตา OPD (พยาบาลและห้องตรวจแพทย์บางห้อง)

ออฟไลน์ udomchok

  • Hero Member
  • *****
  • กระทู้: 8,357
  • Respect: +589
    • ดูรายละเอียด
    • ร.พ.สมเด็จพระสังฆราช องค์ที่ 17
คำตอบ (ต่อ) :
Step 2 : ทดลองทำแบบเดิม (ได้ผลไม่ถูกตามที่ต้องการ)
==============================================
select t.hn, t.vn, sum(HBsAb) as HBs_Ab, sum(HBsAg) as HBs_Ag
from (
select lh.hn, lh.vn, if(lab_items_code=358,lo.lab_order_result,"") as HBsAb, if(lab_items_code=360,lo.lab_order_result,"") as HBsAg
from lab_head lh
join lab_order lo on lo.lab_order_number=lh.lab_order_number
where lh.order_date between "2013-10-01" and "2013-10-31"
and lo.lab_items_code in (358,360)
order by vn) as t
group by t.vn
ทำด้วยหัวใจร.พ.สมเด็จพระสังฆราช องค์ที่ 17 อ.สองพี่น้อง จ.สุพรรณบุรี
อบรมโดย BMS Team เมื่อ พ.ย. 49 ขึ้นระบบห้องบัตรเมื่อ X'Mas 2007
2008 : X-Ray กายภาพบำบัด แพทย์แผนไทย กิจกรรมบำบัด OPD ตา
2009 : ทันตกรรม ห้องตรวจตา OPD (พยาบาลและห้องตรวจแพทย์บางห้อง)

ออฟไลน์ udomchok

  • Hero Member
  • *****
  • กระทู้: 8,357
  • Respect: +589
    • ดูรายละเอียด
    • ร.พ.สมเด็จพระสังฆราช องค์ที่ 17
คำตอบ (ต่อ) :
Step 3 : เขียนใหม่แบบ Join Lab ทีละรายการ หากมีหลายรายการ ก็ Join กันไปเรื่อย ๆ
==============================================
select t1.*, t2.HBsAg from
(select lh.hn, lh.vn, lo.lab_order_result as HBsAb
from lab_head lh
join lab_order lo on lo.lab_order_number=lh.lab_order_number
where lh.order_date between "2013-10-01" and "2013-10-31"
and lo.lab_items_code=358
order by lh.vn) t1
join
(select lh.vn, lo.lab_order_result as HBsAg
from lab_head lh
join lab_order lo on lo.lab_order_number=lh.lab_order_number
where lh.order_date between "2013-10-01" and "2013-10-31"
and lo.lab_items_code=360
order by lh.vn) t2 on t1.vn=t2.vn
ทำด้วยหัวใจร.พ.สมเด็จพระสังฆราช องค์ที่ 17 อ.สองพี่น้อง จ.สุพรรณบุรี
อบรมโดย BMS Team เมื่อ พ.ย. 49 ขึ้นระบบห้องบัตรเมื่อ X'Mas 2007
2008 : X-Ray กายภาพบำบัด แพทย์แผนไทย กิจกรรมบำบัด OPD ตา
2009 : ทันตกรรม ห้องตรวจตา OPD (พยาบาลและห้องตรวจแพทย์บางห้อง)