BMS-HOSxP Community

HOSxP => แจ้งปัญหา / ขอความช่วยเหลือ => ข้อความที่เริ่มโดย: onlinelp ที่ สิงหาคม 23, 2007, 15:02:34 PM

หัวข้อ: เรียนถามท่านผู้รู้ทีครับ....
เริ่มหัวข้อโดย: onlinelp ที่ สิงหาคม 23, 2007, 15:02:34 PM
ผมมีหน่วยต้นทุนที่เป็นหน่วยงานที่บริการผู้ป่วยโดยตรง และมีรหัสใน kskdepartment ดังว่า นั้น ผมต้องการนับจำนวนผู้ป่วยที่ผ่านจุดนั้นๆ และต้องการทราบมูลค่าการจ่ายยาให้ผู้ป่วยในหน่วยงานนั้นๆ ด้วยครับ โปรดช่วยผมรวมตัวเลขให้ถูกต้องด้วยครับ
หัวข้อ: Re: เรียนถามท่านผู้รู้ทีครับ....
เริ่มหัวข้อโดย: doramon ที่ สิงหาคม 23, 2007, 15:09:52 PM
แบบนี้มันจะคำนวนมากเกินครับ

ส่ง sql ที่คุณใช้ post มาด้วยครับ

เดี่ยวจะแก้ให้ครับ
หัวข้อ: Re: เรียนถามท่านผู้รู้ทีครับ....
เริ่มหัวข้อโดย: SrWooD ที่ สิงหาคม 23, 2007, 15:19:54 PM
ลองคิดใหม่ดูครับ

เพราะมันจะไปเกิด one to many ที่ opitemrece ตาม icode ทำให้มีข้อมูล income ที่ sum ตามจำนวน icode ของ opitemrece ทำให้ sum ออกมาเยอะครับ

การเชื่อมกันของ ovst,opitemrece,vn_stat น่าจะเป็น vn มากกว่า hn ครับ

ลอง test ด้วย

select o.*,k.*,op.*,v.*
from ovst o,kskdepartment k,opitemrece op,vn_stat v
where o.main_dep in ('001')
and o.main_dep=k.depcode
and o.hn=op.hn
and o.hn=v.hn
limit 100

ดูครับ  แล้วลองพิจารณาข้อมูลดูครับ

อย่าลืมใส่ limit ครับ เพราะอาจเยอะมาก
หัวข้อ: Re: เรียนถามท่านผู้รู้ทีครับ....
เริ่มหัวข้อโดย: onlinelp ที่ สิงหาคม 23, 2007, 15:37:56 PM
select k.department ,k.depcode,count(o.hn)as cc,sum(v.income) as tt
from ovst o,kskdepartment k,opitemrece op,vn_stat v
where o.vstdate between '2007-01-01' and '2007-01-30'
and o.main_dep in ('120','010','020','014','050','080','070','060','011','110','108','121','041','040','032','051','091','043','029','039')
and o.main_dep = k.depcode
and o.hn = op.hn
and o.hn = v.hn
group by k.department
order by cc


ขอบคุณคับ
หัวข้อ: Re: เรียนถามท่านผู้รู้ทีครับ....
เริ่มหัวข้อโดย: SrWooD ที่ สิงหาคม 23, 2007, 16:25:31 PM
ตัดการเชื่อมตาราง opitemrece ออกก็ได้ครับ

ไม่เห็นเอาไปทำอะไรครับ
หัวข้อ: Re: เรียนถามท่านผู้รู้ทีครับ....
เริ่มหัวข้อโดย: เกื้อกูล ครับ.. ที่ สิงหาคม 23, 2007, 18:52:05 PM
ตัดการเชื่อมตาราง opitemrece ออกก็ได้ครับ

ไม่เห็นเอาไปทำอะไรครับ


ฝากดูแล  รพ.สามโก้  ด้วยครับ...ขอบคุณล่วงหน้าครับ  SRWOOD
หัวข้อ: Re: เรียนถามท่านผู้รู้ทีครับ....
เริ่มหัวข้อโดย: SrWooD ที่ สิงหาคม 24, 2007, 03:20:09 AM
ครับ คุณ kuakool

select o.main_dep,k.department,count(o.vn) as cc,sum(v.income) as tt
from ovst o
left outer join vn_stat v on o.vn=v.vn
left outer join kskdepartment k on o.main_dep=k.depcode
where o.vstdate between '2007-01-01' and '2007-01-31'
and 0.main_dep in ('120','010','020','014','050','080','070','060','011','110','108','121','041','040','032','051','091','043','029','039')
group by o.main_dep
order by cc

SQL น่าจะประมาณนี้ครับ

แต่ถ้าต้องการทราบมูลค่าการรจ่ายยา ไม่แน่ใจว่า sum income จะถูกต้องหรือป่าวครับ

เพราะจากการสังเกตุ income น่าจะเป็นค่าใช้จ่ายทั้งหมดที่เกิดขึ้นครับ

ต้องถามผู้รู้อีกครั้งครับ

ลองดูครับ
หัวข้อ: Re: เรียนถามท่านผู้รู้ทีครับ....
เริ่มหัวข้อโดย: onlinelp ที่ สิงหาคม 24, 2007, 08:51:46 AM
ขอบคุณท่านผู้รู้ครับที่ให้คำแนะนำ