Oracle加入表格以计算“未付发票”

时间:2014-12-22 05:35:21

标签: sql

我试图找到“给定合同费率的未付发票数量”。

SQL Fiddle here(更新了ujjwal的答案,添加了一个独特的)

你会注意到我有350张未付款的发票比我预期的14张还要多,所以我想我没有正确限制INNER JOIN ......

任何想法都会非常感谢(抱歉,我对SQL很生气),这是针对最新版本的Oracle。

韦恩

1 个答案:

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