2016-06-17 17 views
0

Ok, so das Szenario haben ist ...SQL - Daten gefunden, die mehrere Artikel

Es gibt einen Client mit der ID in der Datenbank als 684. ist

Für diesen speziellen Client gibt es Rechnungen.

Einige dieser Rechnungen sind mit mehreren Jobs verknüpft.

Ich muss alle Jobs, die auf Rechnungen sind, mehr als einmal auflisten und welche diese Jobs sind.

Ich bin neu in SQL und möchte lernen, wie es gemacht würde.

Mein Code bisher

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 

Alles, was Sie wissen müssen, fragen, und ich werde versuchen zu helfen.

Ich weiß im Grunde nicht, wie ich mein Ergebnis aus dem Subselect in meiner Hauptauswahl anzeigen soll.

+0

Wie werden Rechnungen und Arbeitsplätze zu tun? Ich kann nicht aus Ihrer Anfrage sehen; auch keine Tabellendefinitionen. – Arvo

+0

Das InvoiceItem hat eine Spalte namens JobNo. – MagicRecon

+0

Welches DBMS benutzen Sie? –

Antwort

0

Fistly, IM Nutzungsdaten filtern

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