【问题标题】:Correlated Subquery, oracle sql相关子查询,oracle sql
【发布时间】:2017-11-04 03:05:40
【问题描述】:

我正在做作业,但我无法解决这个问题。任何人都可以帮助我吗?这个Oracle Sql

显示高于供应商平均发票金额的每张发票金额。 您必须使用相关子查询。

我试过了,但我没有那么接近。我的代码是:

    SELECT vendor_id, invoice_number, invoice_total
FROM ap.invoices
WHERE invoice_total  >  (SELECT AVG(invoice_total) 
                     FROM ap.invoices
                     where invoice_id=invoice_id
                     )
ORDER BY vendor_id; 

结果表应与此图像匹配: https://i.stack.imgur.com/w9D6i.png

【问题讨论】:

    标签: sql database oracle subquery correlated-subquery


    【解决方案1】:

    为外部查询表使用别名,并关联vendor_id 字段:

    SELECT vendor_id, invoice_number, invoice_total
    FROM ap.invoices i
    WHERE invoice_total  >  (
        SELECT AVG(invoice_total) 
        FROM ap.invoices v
        where v.vendor_id = i.vendor_id
    )
    ORDER BY vendor_id;
    

    【讨论】: