2016-06-17 2 views
0

Ok поэтому сценарий ...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 

Все, что вам нужно знать, спросите и я постараюсь помочь.

Я вообще не знаю, как отобразить мой результат из подзапроса в моем основном выборе, я думаю.

+0

Как счета и работы, связанные? Я не вижу из вашего запроса; также нет определений таблиц. – Arvo

+0

У InvoiceItem есть столбец с именем JobNo, извините, совершенно новый для этого. – MagicRecon

+0

Какая СУБД вы используете? –

ответ

0

Fistly, используйте 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 
Смежные вопросы