SQL - 列出具有多个项目的项目

时间:2016-06-17 08:36:04

标签: sql

好的情况是......

在数据库中有一个ID为684的客户端。

对于这个特定的客户,有发票。

其中一些发票附有多个作业。

我需要多次列出发票上的所有工作以及这些工作。

我是SQL的新手,想了解它是如何完成的。

到目前为止我的代码

SELECT
    i.InvoiceNo
FROM
    Job j
    INNER JOIN Client c ON j.ClientID = c.ClientID
    INNER JOIN Invoice i ON c.ClientID = i.ClientID
    INNER JOIN InvoiceItem ii ON i.InvoiceID = ii.InvoiceID
WHERE
    c.ClientID = 684
    AND
    (SELECT COUNT(DISTINCT JobNo) FROM InvoiceItem) > 1

你需要知道的任何问题,我会尽力帮助。

我基本上不知道如何在我的主要选择中猜测从子选择中显示我的结果。

1 个答案:

答案 0 :(得分:0)

首先,使用HAVING过滤数据

SELECT
    COUNT(ii.JobNo), ii.JobNo
FROM
    Job AS j
    INNER JOIN Client AS c ON j.ClientID = c.ClientID
    INNER JOIN Invoice AS i ON c.ClientID = i.ClientID
    INNER JOIN InvoiceItem AS ii ON i.InvoiceID = ii.InvoiceID
WHERE
    c.ClientID = 684
GROUP BY JobNo
HAVING COUNT(DISTINCT ii.JobNo) > 1