Wenn Du alle Sätze nach Vorbedingungen haben möchtest wo mindestens eine ID vorhanden ist, so verstehe ich Deine zweite Aussage im Gegensatz zu Deiner ersten Aussage:
Code:
select *
from ABRECHNUNG
where (ID1 IS NOT NULL OR ID2 IS NOT NULL)
AND
(
((NAME IS NULL or VORNAME IS NULL or GEB_DATUM IS NULL)
or STANDORT IS NULL
or (MITARBEITER IS NULL and KNR IS NULL)
)
Funktioniert leider nicht wie gewünscht. Er schmeißt zwar jetzt einen Datensatz 'raus, der sowohl Name, Vorname und Geb hat ohne IDs, aber er schmeißt auch einen Datensatz 'raus, der weder Name, noch IDs hat.
Ich dummes Huhn hab aber gerade erkannt, dass ich es mir mal wieder schwieriger machte als notwendig. -.- Dein Code brachte mich auf den Trichter.
So funktioniert es, wie ich es haben will, dass die drei fehlerhaften Testdatensätze angezeigt werden.
Code:
select *
from ABRECHNUNG
where ((NAME IS NULL or VORNAME IS NULL or GEB_DATUM IS NULL)
abd (ID1 IS NULL AND ID2 IS NULL)) //<- hier einfach ein AND anstatt OR
or STANDORT IS NULL
or (MITARBEITER IS NULL and KNR IS NULL)
Ich glaube, ich sollte mir erstmal 'n Kakao machen, bevor ich Denksport betreibe.