显示未付款或未付款的记录

时间:2020-03-22 07:20:59

标签: mysql

我正在尝试通过查询来获取数据

表是

1个帐单明细以存储帐单明细

bill_details(bill_no,invoice_no,invoice_date,total,cid)
  1. 账单支付明细,用于存储账单的支付金额,它可以零次或多次输入账单来支付

     bill_paid_details(id,bill_no,amount,payment_mode)
    
  2. 客户详细信息

    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

此查询正在执行,但未显示任何记录。

1 个答案:

答案 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;

Demo.