mysql - 显示未支付或未全额支付的记录
问题描述
我正在尝试以下查询以获取数据
表是
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
此查询正在执行但未显示任何记录。
解决方案
您可以尝试以下查询 -
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;
推荐阅读
- ebay-design-templates - 如何在 ebay 店面动态展示产品
- python - numpy.linspace 数字表示
- typescript - 尝试按键访问值时,打字稿字典对象返回未定义
- opencv - Opencv找到所有最小最大点
- python - 在带有 python 列表的 sql 查询中使用 isin
- mongodb - Mongodb聚合查询计算2点之间的距离
- r - Timevis - 使不同的盒子有颜色取决于不同组中的名称
- spring-boot - Redis 读取超时异常
- ios - Swift IOS:从通知打开应用程序时调用 UIviewController 的特定功能
- ruby - Gemfile 中 Ruby 版本的悲观 Ruby 运算符导致错误