ขอความช่วยเหลือคับท่านอาจาร์ยทุกท่านครับ พอดีอยากจะได้สรุปรายงานการใช้ยานอกเวลาคับว่าทั้งหมดมีจำนวนเท่าไหร่ แต่ผมมีคำส่งดังนี้ครับ
set @t1 = unix_timestamp('2011-01-01')+time_to_sec('16:00:01');
set @t2 = unix_timestamp('2011-09-30')+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','009','006','015')
AND a.vstdate between'2011-01-01'and'2011-09-30'
group by a.icode,b.name,strength,b.units,dosageform
order by dosageform,b.name
แต่ไม่แน่ใจครับว่ามันออกมาทั้งหมดหรือป่าว รบกวนช่วยหน่อยครับ