【发布时间】:2020-11-03 19:25:33
【问题描述】:
我有一个包含许多付款和许多发票行项目的发票表。发票记录的总和是通过发票行项目(数量 * 价格)得出的。
我正在尝试创建一个查询,该查询将返回未结余额的发票。
SELECT inv.id, MAX(inv.invoice_total) as "InvoiceTotal", SUM(pt.amount) AS "TotalPayments" FROM (
SELECT
i.id,
SUM( ili.price * ili.quantity ) as "invoice_total"
FROM
invoices i
JOIN invoice_line_items ili
on i.id = ili.invoice_id
GROUP BY i.id
) inv
LEFT JOIN payment_transactions pt
ON pt.invoice_id = inv.id
GROUP BY inv.id
ORDER BY inv.id DESC
最后一点,我想,是添加 HAVING,它只返回 Total Payments 小于 Invoice Total 的记录,但它不起作用。
我怎样才能做到这一点?有比我更简单的方法吗?
【问题讨论】:
标签: sql postgresql