Vrumfondel 0 Geschrieben 12. September 2014 Melden Geschrieben 12. September 2014 Hallo, ich bin neu hier und traue mich daher mal mit einer einfachen Frage hervor. Ich habe folgenden Tabellenaufbau ID AUFTRAG BELEG POSITION ... 1 1 4711 1000 2 1 4711 1100 3 2 4711 1000 4 2 4711 5 2 4712 1000 6 2 4712 Ich suche nun eine Abfrage, die mir alle Positionen eines Belegs ausgibt, wenn mindestens eine Position des Belegs innerhalb eines Auftrags leer ist, d.h. es dürfen nur die IDs 3 bis 6 ausgegeben werden. Wahrscheinlich ganz einfach... Trotzdem Dank im voraus. Grüße, Vrumfondel
Pathomorph 1 Geschrieben 12. September 2014 Melden Geschrieben 12. September 2014 SELECT * FROM [DeineTabelle] WHERE POSITION IS NULL
Vrumfondel 0 Geschrieben 14. September 2014 Autor Melden Geschrieben 14. September 2014 Das gibt aber doch nur die IDs 4 und 6 zurück, der Select soll aber alle (!) Positionen eines Belegs ausgeben, wenn mindestens eine Position null ist, d.h. es müssen die IDs drei bis sechs ausgeben werden.
zahni 587 Geschrieben 14. September 2014 Melden Geschrieben 14. September 2014 Sub-Select oder Having: http://en.wikipedia.org/wiki/Having_(SQL)
hh2000 10 Geschrieben 16. September 2014 Melden Geschrieben 16. September 2014 Moin,wie schon gesagt, mit einem Sub-SELECT funktioniert es: SELECT * FROM Tabelle WHERE Auftrag IN ( SELECT Auftrag FROM Tabelle WHERE Position IS NULL ) Gruß Kai
Vrumfondel 0 Geschrieben 17. September 2014 Autor Melden Geschrieben 17. September 2014 Hallo, schonmal danke für Eure Hilfe, aber das trifft's leider noch nicht vollständig. Ich habe mein Beispiel etwas abgeändert. ID AUFTRAG BELEG POSITION ... 1 1 4711 1000 2 1 4711 1100 3 2 4711 1000 4 2 4711 5 2 4712 1000 6 2 4712 1100 Mit dem genannten Select SELECT * FROM Tabelle WHERE Auftrag IN ( SELECT Auftrag FROM Tabelle WHERE Position IS NULL ) würde der komplette Auftrag 2 ausgegeben, es sollten aber nur die IDs 3 und 4 sein. Womit ich nicht zurecht komme ist, zwei Where-Bedingungen auf den Subselect anzuwenden. Der Subselect müsste Auftrag und Beleg zurückgeben und darauf müsste die Where-Bedingung des Selects angewendet werden. Werde jetzt aber auch noch etwa mit dem HAVING rumbasteln... Viele Grüße Vrumfondel
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde dich hier an.
Jetzt anmelden