BMS-HOSxP Community

HOSxP => แจ้งปัญหา / ขอความช่วยเหลือ => ข้อความที่เริ่มโดย: golf_win ที่ ตุลาคม 20, 2008, 15:52:04 PM

หัวข้อ: ฝากช่วยตรวจสอบ sql ทีครับ
เริ่มหัวข้อโดย: golf_win ที่ ตุลาคม 20, 2008, 15:52:04 PM
เป็นอะไรก็ไม่รู้มันไม่ยอม count ทั้งเดือนครับ เลยเริ่มงง ??? ???
หัวข้อ: Re: ฝากช่วยตรวจสอบ sql ทีครับ
เริ่มหัวข้อโดย: Khuad ที่ ตุลาคม 20, 2008, 16:22:00 PM
....ลองทดสอบดูก่อน น่าจะตรงกับที่ต้องการครับ... :D....
หัวข้อ: Re: ฝากช่วยตรวจสอบ sql ทีครับ
เริ่มหัวข้อโดย: golf_win ที่ ตุลาคม 20, 2008, 18:21:30 PM
ลองทำออกมาในรูปของ Report ครับ ;D ;D
ขอบคุณพี่ขวดมากๆ ครับ
หัวข้อ: Re: ฝากช่วยตรวจสอบ sql ทีครับ
เริ่มหัวข้อโดย: Khuad ที่ ตุลาคม 20, 2008, 21:37:54 PM


ลองทำออกมาในรูปของ Report ครับ ;D ;D
ขอบคุณพี่ขวดมากๆ ครับ


.... ;) .....เยี่ยมครับ..... ;)....

....รายงานลักษณะนี้ใช้  Groups เข้ามาช่วยด้วยก็ดีเหมือนกันนะ   กอล์ฟ ลองเอารายงานข้างล่างไปลองดู หรือลองหัดทำด้วย SubReport ดูบ้างก็ได้  เดี๋ยววันหลังพี่จะได้ขออาศัยใบบุญบ้าง  ..... สู้ สู้ ... :D....
หัวข้อ: Re: ฝากช่วยตรวจสอบ sql ทีครับ
เริ่มหัวข้อโดย: white ที่ ตุลาคม 20, 2008, 21:46:30 PM
คุยกันอยู่สองคน
อิจฉาคนเขียน report เก่งๆจัง
ทำแต่ละตัวนี่มึนตึ๊บเลยครับ
หัวข้อ: Re: ฝากช่วยตรวจสอบ sql ทีครับ
เริ่มหัวข้อโดย: golf_win ที่ ตุลาคม 20, 2008, 21:58:17 PM
เดี๋ยวจะลองทำ report แบบที่พี่ขวดแนะนำกับ หัตถการ OPD ครับแต่ก็ยังงงๆ กับระบบ subreport แต่จะพยายามครับ ;D ;D
หัวข้อ: Re: ฝากช่วยตรวจสอบ sql ทีครับ
เริ่มหัวข้อโดย: doramon ที่ ตุลาคม 20, 2008, 22:05:03 PM
ขยันจริงๆๆ อ.ขวด

หัวข้อ: Re: ฝากช่วยตรวจสอบ sql ทีครับ
เริ่มหัวข้อโดย: Khuad ที่ ตุลาคม 20, 2008, 22:07:35 PM


ขยันจริงๆๆ อ.ขวด


....แบบว่า.....

.... จำเป็นต้องขยันครับ   อ.อ๊อด ... 555555 ..... ;D....
หัวข้อ: Re: ฝากช่วยตรวจสอบ sql ทีครับ
เริ่มหัวข้อโดย: golf_win ที่ ตุลาคม 21, 2008, 05:31:53 AM
 ;D ;D
หัวข้อ: Re: ฝากช่วยตรวจสอบ sql ทีครับ
เริ่มหัวข้อโดย: white ที่ ตุลาคม 21, 2008, 07:24:08 AM
;D ;D

รายการยานอกเวลา อันใหม่ของคุณ golf_win
set @t1 = unix_timestamp('2008-06-01')+time_to_sec('20:30:00');
set @t2 = unix_timestamp('2008-06-02')+time_to_sec('08:00:00');
select  a.icode,concat(b.name,' ',strength,' (',b.units,')') as drugname ,sum(a.qty) as total,dosageform
FROM opitemrece a
left outer join drugitems b on a.icode=b.icode
left outer join service_time c on c.vn=a.vn
where  unix_timestamp(c.vstdate)+time_to_sec(c.service12)  between @t1 and @t2
AND a.icode LIKE'1%'
and dep_code  in ('011','044')
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


อันนี้อันล่าสุดของผม
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 ('014')
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


ตอนนั้นยังเขียนแบบลูกทุ่งอยู่
แต่หลักๆเพื่อแก้ปัญหาเรื่องข้ามวันแล้ว rxdate ไม่เปลี่ยนตามวันจริง
(ตอนนี้อาจารย์แก้เรื่องนี้แล้ว คงเอาเงื่อนไขออกได้แล้ว)

ที่ต่างกับคุณ golf ชัดๆ
-ผมใช้ rxdate, rxtime ซึ่งเป็นเวลาที่สั่งยาจริง
เท่าที่ออกรายงานมาหลายวัน ค่อนข้างตรงจริงทุกวันครับ เอาอีกตัวไว้ใช้เบิกยาในเวลาเลยด้วยซ้ำ
แต่...จะมีปัญหาเรื่อง จะเอาตามเวลาที่ save การสั่งยาครั้งสุดท้าย ถ้ามีการสั่งยาเพิ่ม
เช่นสั่งยาตัวที่ 1 นอกเวลา แล้วมาสั่งยาเพิ่มอีกตัวในเวลา (ซึ่งเกินเวลาที่รายงานนอกเวลาครอบคลุม)
มันจะเอา rxtime จากเวลาที่ save ครั้งสุดท้ายครับ
ทำให้ไม่มีชื่อในรายงานนอกเวลา หรืออาจมีชื่ออยู่ในทั้งสองรายงาน หากพิมพ์ report ก่อนสั่งยาตัวสอง

นอกนั้นยังไม่เจอปัญหาครับ

เดิมเคยใช้เวลาจาก er_regist แต่พบว่าจะมีปัญหาเวลา admit แล้วเวลาถูกเปลี่ยน เลยเลิกไป

อยากทราบว่าใช้ servicetime มีปัญหาอะไรไหมครับ