我正在尝试通过查询来获取数据
表是
1个帐单明细以存储帐单明细
bill_details(bill_no,invoice_no,invoice_date,total,cid)
账单支付明细,用于存储账单的支付金额,它可以零次或多次输入账单来支付
bill_paid_details(id,bill_no,amount,payment_mode)
客户详细信息
customer_mapping(id,fname,lname,cid)
我想显示未付款或未全额付款的记录。
如果未付款,则bill_paid_details中没有条目
我正在尝试跟踪查询。
select bd.invoice_no,bd.invoice_no, bd.total,sum(bpd.amount), cm.fname
from bill_details as bd
left join customer_mapping as cm
on bd.cid=cm.cid
left join bill_paid_details as bpd
on bpd.bill_no=bd.bill_no
group by bd.invoice_no
HAVING bd.total>sum(bpd.amount)
order by bd.invoice_dt
此查询正在执行,但未显示任何记录。
答案 0 :(得分:0)
您可以在下面的查询中尝试-
SELECT BD.invoice_dt
,BD.invoice_no
,BD.total
,BPD.AMT
,C.FNAME
FROM `bill_details` BD
LEFT JOIN (SELECT bill_no, SUM(AMOUNT) AMT
FROM `bill_paid_details`
GROUP BY bill_no) BPD ON BD.bill_no = BPD.bill_no
JOIN client C ON C.id = BD.cid
WHERE BD.total <> BPD.AMT
OR BPD.bill_no IS NULL
ORDER BY invoice_dt;