Vrumfondel 0 Geschrieben 12. September 2014 Melden Teilen 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 Zitieren Link zu diesem Kommentar
Pathomorph 1 Geschrieben 12. September 2014 Melden Teilen Geschrieben 12. September 2014 SELECT * FROM [DeineTabelle] WHERE POSITION IS NULL Zitieren Link zu diesem Kommentar
Vrumfondel 0 Geschrieben 14. September 2014 Autor Melden Teilen 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. Zitieren Link zu diesem Kommentar
zahni 554 Geschrieben 14. September 2014 Melden Teilen Geschrieben 14. September 2014 Sub-Select oder Having: http://en.wikipedia.org/wiki/Having_(SQL) Zitieren Link zu diesem Kommentar
hh2000 10 Geschrieben 16. September 2014 Melden Teilen 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 Zitieren Link zu diesem Kommentar
Vrumfondel 0 Geschrieben 17. September 2014 Autor Melden Teilen 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 Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.