我试图找到“给定合同费率的未付发票数量”。
SQL Fiddle here(更新了ujjwal的答案,添加了一个独特的)
你会注意到我有350张未付款的发票比我预期的14张还要多,所以我想我没有正确限制INNER JOIN ......
任何想法都会非常感谢(抱歉,我对SQL很生气),这是针对最新版本的Oracle。
韦恩
答案 0 :(得分:1)
您可以尝试仅选择不同的条目:
SELECT
r.id AS rate_id,
COUNT(distinct mi.id) AS outstanding_invoices **change here**
FROM
contract_rate r
INNER JOIN
contract c ON r.contract_id = c.id
INNER JOIN
contractor con ON con.id = c.contractor_id
INNER JOIN
maintenance_item item ON item.contract_rate_id = r.id
INNER JOIN
maintenance_invoice mi ON mi.contractor_id = c.contractor_id AND mi.status = 'Awaiting Approval'
GROUP BY
r.id