BMS-HOSxP Community

HOSxP => แจ้งปัญหา / ขอความช่วยเหลือ => ข้อความที่เริ่มโดย: Guitar-hero ที่ กุมภาพันธ์ 08, 2012, 11:52:07 AM

หัวข้อ: ขอ sql สรุปค่าใช้จ่ายผู้ป่วยที่ยังไม่ได้ชำระเงิน ครับ
เริ่มหัวข้อโดย: Guitar-hero ที่ กุมภาพันธ์ 08, 2012, 11:52:07 AM
รบกวนด้วยครับ

ขอ sql ที่ดึงข้อมูลจากตาราง rcpt_arrear แบบ group by ค่าใช้จ่ายที่ค้างชำระ แต่ละคนครับ  รูปแบบที่ต้องการเป็นแบบนี้ครับ

HN        ชื่อ - สกุล                             ยอดเงินที่ค้างชำระ (sum amount)
xxx       xxxxxxxxxxxx                           999.99
xxx       xxxxxxxxxxxx                           999.99
xxx       xxxxxxxxxxxx                           999.99
xxx       xxxxxxxxxxxx                           999.99
หัวข้อ: Re: ขอ sql สรุปค่าใช้จ่ายผู้ป่วยที่ยังไม่ได้ชำระเงิน ครับ
เริ่มหัวข้อโดย: redfireball ที่ กุมภาพันธ์ 08, 2012, 12:37:42 PM
select r.hn,concat(p.pname,p.fname,space(2),p.lname) as pt,sum(r.amount) as cc
from rcpt_arrear r
left join patient p on p.hn = r.hn
where r.paid = 'N'
group by r.hn
order by r.hn

ลองดูครับ  ;)
หัวข้อ: Re: ขอ sql สรุปค่าใช้จ่ายผู้ป่วยที่ยังไม่ได้ชำระเงิน ครับ
เริ่มหัวข้อโดย: Guitar-hero ที่ กุมภาพันธ์ 08, 2012, 16:00:29 PM
แต่มีเงื่อนไขเพิ่มเติมอยู่ ว่า

ให้แสดงจำนวนคนไข้ ตามวันที่ต้องการ    แต่ให้รวมจำนวนครั้งการค้างชำระ ของคนไข้ แต่ละคนทั้งหมดครับ

เช่น คนไข้

HN                        vstdate              Paid         amount
4902254               01/12/54             N             500
4902254               01/01/55             N            1500

เวลาแสดงผล  วันที่  01-01-55   ต้องเป็นแบบนี้

HN                               amount
4902254                     1500             
ตอนนับรวมยอดค้างจ่ายจะไม่สนใจวันที่ จะสนใจว่า Paid =N หรือไม่ แต่ตอนแสดงรายชื่อคนไข้จะดึงเฉพาะวันที่เลือก
หัวข้อ: Re: ขอ sql สรุปค่าใช้จ่ายผู้ป่วยที่ยังไม่ได้ชำระเงิน ครับ
เริ่มหัวข้อโดย: nutsuanplu ที่ กุมภาพันธ์ 08, 2012, 17:10:35 PM
แต่มีเงื่อนไขเพิ่มเติมอยู่ ว่า

ให้แสดงจำนวนคนไข้ ตามวันที่ต้องการ    แต่ให้รวมจำนวนครั้งการค้างชำระ ของคนไข้ แต่ละคนทั้งหมดครับ

เช่น คนไข้

HN                        vstdate              Paid         amount
4902254               01/12/54             N             500
4902254               01/01/55             N            1500

เวลาแสดงผล  วันที่  01-01-55   ต้องเป็นแบบนี้

HN                               amount
4902254                     1500             
ตอนนับรวมยอดค้างจ่ายจะไม่สนใจวันที่ จะสนใจว่า Paid =N หรือไม่ แต่ตอนแสดงรายชื่อคนไข้จะดึงเฉพาะวันที่เลือก

select r.hn,r.vn,concat(p.pname," ",p.fname," ",p.lname)as fullname,r.arrear_date,sum(r.amount)as sum_amount
from rcpt_arrear r
left outer join patient p on p.hn = r.hn
where arrear_date between "2012-01-01" and "2012-01-30" and r.paid = "N"
group by r.vn
order by r.arrear_date

อันนี้ใช้ได้รึเปล่าครับ