PDA

View Full Version : SQL: nur Auftragspositionen mit Lohn / wenn andere vorhanden sind diese Sätze nicht



cicero22
08-05-17, 08:18
Hallo

Mein SQL ist leider etwas eingerostet :-(
Komme deshalb nicht alleine drauf...

Ich habe eine Auftragspositionsdatei. Es sollen nur Aufträge ermittelt werden, bei denen NUR Lohnpositionen vorhanden sind. Wurde z.B. bei dem Auftrag auch Material verwendet (in extra Positionszeile), so sollen diese Aufträge nicht angezeigt werden....

Grobbeispiel:

Auftragsnummer Artnr. Artikel-Hauptgruppe
100112 4711 Lohn
100112 8325 Filter

100113 4711 Lohn

Auftrag 100112 wäre nicht richtig bei der Anzeige - 100113 ja (da nur Lohnposition vorhanden).

Vielen Dank für Eure Hilfe.

VG cicero22

dholtmann
08-05-17, 08:30
Hallo,

du kannst über den Key (Auftragsnummer) ein where not exists einbinden, dann läuft das Ganze.
select A.Auftragsnummer from Datei A where A.Artikel-Hauptgruppe = 'Lohn' and not exists
(select * from Datei B where B.Auftragsnummer = A.Auftragsnummer and B.Artikel-Hauptgruppe <> 'Lohn')

cicero22
08-05-17, 09:06
Ich wusste es geht "einfach" . DANKE dholtmann

Hab die ganze Zeit versucht irgendwie mit Teilen wie...

SELECT Auftragsnummer, count(distinct Artikel-Hauptgruppe ) FROM datei GROUP
BY Auftragsnummer

zu zählen wie oft welche Artikel-Hauptgruppe wie oft vorkommt usw....

Aber Deine Lösung funktioniert einwandfrei - DANKE