BMS-HOSxP Community
HOSxP => แจ้งปัญหา / ขอความช่วยเหลือ => ข้อความที่เริ่มโดย: onlinelp ที่ สิงหาคม 23, 2007, 15:02:34 PM
-
ผมมีหน่วยต้นทุนที่เป็นหน่วยงานที่บริการผู้ป่วยโดยตรง และมีรหัสใน kskdepartment ดังว่า นั้น ผมต้องการนับจำนวนผู้ป่วยที่ผ่านจุดนั้นๆ และต้องการทราบมูลค่าการจ่ายยาให้ผู้ป่วยในหน่วยงานนั้นๆ ด้วยครับ โปรดช่วยผมรวมตัวเลขให้ถูกต้องด้วยครับ
-
แบบนี้มันจะคำนวนมากเกินครับ
ส่ง sql ที่คุณใช้ post มาด้วยครับ
เดี่ยวจะแก้ให้ครับ
-
ลองคิดใหม่ดูครับ
เพราะมันจะไปเกิด 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 ครับ เพราะอาจเยอะมาก
-
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
ขอบคุณคับ
-
ตัดการเชื่อมตาราง opitemrece ออกก็ได้ครับ
ไม่เห็นเอาไปทำอะไรครับ
-
ตัดการเชื่อมตาราง opitemrece ออกก็ได้ครับ
ไม่เห็นเอาไปทำอะไรครับ
ฝากดูแล รพ.สามโก้ ด้วยครับ...ขอบคุณล่วงหน้าครับ SRWOOD
-
ครับ คุณ 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 น่าจะเป็นค่าใช้จ่ายทั้งหมดที่เกิดขึ้นครับ
ต้องถามผู้รู้อีกครั้งครับ
ลองดูครับ
-
ขอบคุณท่านผู้รู้ครับที่ให้คำแนะนำ