ผู้เขียน หัวข้อ: ปรึกษาเรื่องการทำรายงาน การใช้ยาของ ER ในช่วงเวลา 16.00 ถึง 8.00 ของอีกวัน  (อ่าน 3471 ครั้ง)

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

ออฟไลน์ ~ L~ อิสระเสรี ~ L~

  • Full Member
  • ***
  • กระทู้: 127
  • ใต้ฟ้า แผ่นดินเดียวกัน
  • Respect: 0
    • ดูรายละเอียด
เนื่องจากว่าต้องการข้อมูลการใช้ยาของ ER ในช่วงเวลาดังกล่าว คือ สมมุติว่า ข้อมูล วันที่ 2009-10-18 เวลา 16.00.00 น. ถึง วันที่ 2009-10-19 เวลา 8.00.00 น. ต้องเขียนคำสั่งอย่างไรครับ เนื่องจากทุกวันนี้หน้ารายงานจะถูกแยกเป็น 2 กะ คือ กะบ่าย 16.00.00 น. - 00.00.00 น.  กับ กะดึก 00.00.01 น. - 08.00.00 น. โดยรายงานจะต้องทำ 2 อันตลอด จึงอยากจะให้การใช้ยาทั้ง 2 กะเอามารวมกัน แล้วออกใบเดียว  ตัวอย่างโคดนะครับ

นี่ของกะบ่าย

select concat(b.name,' ',strength) as drugname,sum(qty),units,b.unitprice ,sum(qty*b.unitprice) as total,a.dep_code,department,count(hn),dosageform
from opitemrece a
left outer join drugitems b on a.icode=b.icode
left outer join kskdepartment c on a.dep_code=c.depcode
where a.icode like'1%'
and qty>=1
and vstdate between'2009-08-25'and'2009-08-25'
and vsttime between'16:00:00'and'24:00:00'
and a.dep_code in('011','040')
group by a.icode,b.name,strength,units,dosageform
order by b.dosageform,b.name

นี่ของกะดึก

select concat(b.name,' ',strength) as drugname,sum(qty),units,b.unitprice ,sum(qty*b.unitprice) as total,a.dep_code,department,count(hn),dosageform
from opitemrece a
left outer join drugitems b on a.icode=b.icode
left outer join kskdepartment c on a.dep_code=c.depcode
where a.icode like'1%'
and qty>=1
and vstdate between'2009-08-25'and'2009-08-25'
and vsttime between'00:00:00'and'07:45:00'
and a.dep_code in('011','040')
group by a.icode,b.name,strength,units,dosageform
order by b.dosageform,b.name

จะสังเกตุได้ว่าเปลี่ยนเฉพาะเวลาเท่านั้นเอง แต่ผมทำยังไงมันก็ไม่ยอมเข้ากันสักทีเป็นงง ??? ??? รบกวน อ. และ ผู้รู้ช่วยชี้แนะด้วยนะครับ พอดีไม่ค่อยคุ้นกับโปรแกรมเท่าไหร่ กำลังศึกษาอยู่ ขอบคุณล่วงหน้านะครับ :D :D :D :D
รบร้อยครั้ง ชนะร้อยครั้ง มิใช่ยอด สยบข้าศึกโดยไม่รบ นี่คือ ยอดนักรบ

นายประวิทย์  กันทะขู้ (วิทย์) นักวิชาการคอมพิวเตอร์(ลูกจ้างชั่วคราว) โรงพยาบาลปง อ.ปง จ.พะเยา 56140  โทร. (0)54-497289 (เบอร์ตรง) เบอร์โรงพยาบาล (0)54-497030 ต่อ 116
E-mail,MSN : Prk1233@hotmail.com
 SERVER   LINUX   centos 5.3
 MySQL  5.1.30
 RAM 1 G 
 HosXp V. 3.54.8.19

 Slave  LINUX centos 5.3
 MySQL 5.4.1 beta
 RAM 8 G

 Client     Core 2 duo 2.2 RAM 2 G

ออฟไลน์ nahos

  • Hero Member
  • *****
  • กระทู้: 2,216
  • รพ.นาแห้ว
  • Respect: +7
    • ดูรายละเอียด
    • รพ.นาแห้ว
set @t1 = unix_timestamp('2008-09-01')+time_to_sec('15:30:01');
set @t2 = unix_timestamp('2008-09-02')+time_to_sec('08:00:00');
select  a.icode,concat(b.name,' ',strength,' (',b.units,')') as drugname ,sum(a.qty) as total,dosageform,b.unitprice, sum_price, a.vstdate
FROM opitemrece a
LEFT OUTER JOIN drugitems b ON a.icode=b.icode
WHERE
(
(unix_timestamp(a.rxdate)+time_to_sec(a.rxtime) between @t1 and @t2
AND time_to_sec(rxtime) > time_to_sec(vsttime))
OR
( time_to_sec(rxtime) < time_to_sec(vsttime)
AND unix_timestamp(ADDDATE(a.rxdate,1))+time_to_sec(a.rxtime) between @t1 and @t2)
)
AND a.icode LIKE'1%'
AND dep_code  in ('011')
AND a.vstdate between'2008-06-01'and'2013-06-02'
group by   a.icode,b.name,strength,b.units,dosageform
order by dosageform,b.name

เอามาจากในนี้แหละครับ
ถ้าำคำถามท่านได้คำตอบที่ต้องการจากอาจารย์ท่านใด กรุณากด Thank เบา ๆ ^ ถูกใจกด [applaud] ไม่ชอบใจกด[smite]
>> การโพสต์ขอรายงานที่ดี <<
อ่านซักนิด ถามยังไงให้ได้คำตอบ ? :)
วิธีแสดงตัวว่าเป็นใคร โดย อ.อ๊อด (ให้ข้อมูลว่าเป็นใคร ปฏิบัติงานที่ไหน ใช้ server อะไร OS อะไร HOsxp Vไหน)
ก่อนที่จะตั้งกระทู้ถาม ลองค้นจากกระทู้เก่าดูก่อนไหม จะได้คำตอบเร็วกว่าการรอคำตอบนะ
..........................................................................
เจษ จพ.เภสัชกรรมฯ user@ NAHAEO HOSPITAL LOEI. <br>  Supervise by DANSAI HOSPITAL LOEI. <br>
Start 01/03/2550
=> Server IBM X3200 Ram 6 Gb. OS:Cent OS 6.0  
=> Client 20 client  OS: SP2  => HosXP Version <b>3.56.11.19</b>
-----------------------------
น้ำเต็มแก้ว "การเรียนรู้ไม่มีที่สิ้นสุด"

ออฟไลน์ armds

  • Hero Member
  • *****
  • กระทู้: 1,084
  • armds
  • Respect: +10
    • ดูรายละเอียด
ลองแบบนี้ดูครับ

where  concat(vstdate," ",vsttime) between "2009-08-25 16:00:00" and "2009-08-26 07:45:00"
โรงพยาบาลสมเด็จพระยุพราชด่านซ้าย จ.เลย
ขนาด 60 เตียง นวก. คอมพิวเตอร์ ขึ้นระบบ ปี 2548
ขอบคุณ อ.ชัยพร อ.สุชัย อ.เดชา อ.doreamon อ.naj อ.ขวด และอ.ในเว็บ hosxp.net ทุกท่าน

ออฟไลน์ ~ L~ อิสระเสรี ~ L~

  • Full Member
  • ***
  • กระทู้: 127
  • ใต้ฟ้า แผ่นดินเดียวกัน
  • Respect: 0
    • ดูรายละเอียด
ขอบคุณมากนะครับสำหรับทุกคำตอบ เดี๋ยวผมขอลองก่อนนะครับ ;D ;D ;D
รบร้อยครั้ง ชนะร้อยครั้ง มิใช่ยอด สยบข้าศึกโดยไม่รบ นี่คือ ยอดนักรบ

นายประวิทย์  กันทะขู้ (วิทย์) นักวิชาการคอมพิวเตอร์(ลูกจ้างชั่วคราว) โรงพยาบาลปง อ.ปง จ.พะเยา 56140  โทร. (0)54-497289 (เบอร์ตรง) เบอร์โรงพยาบาล (0)54-497030 ต่อ 116
E-mail,MSN : Prk1233@hotmail.com
 SERVER   LINUX   centos 5.3
 MySQL  5.1.30
 RAM 1 G 
 HosXp V. 3.54.8.19

 Slave  LINUX centos 5.3
 MySQL 5.4.1 beta
 RAM 8 G

 Client     Core 2 duo 2.2 RAM 2 G