INNER JOIN bringt nicht richtige Datensätze

juergp

Grünschnabel
Hi Leute

Ich habe ein Problem mit einer DB-Abfrage.
Es bestehen 2 Tabellen: "Probeneinsendungen(PREI)" und "Proben(PROB)".

Zu einer Einsendung können beliebig viele Proben gehören.
Nun brauche ich alle Einsendungen, bei denen alle Proben freigegeben sind.
Mit "SELECT PREI_OID FROM Probeneinsendungen
INNER JOIN Proben ON PREI_OID=PROB_PREI_OID AND PROB_FREIGABE='J' ",
bekomme ich alle Einsendungen bei denen mindestens eine Probe freigegeben ist.
Ich brauche aber nur die bei denen ALLE Proben freigegeben sind.

Kann mir bitte jemand helfen.

Vielen Dank im Voraus
juergp
 
Versuch das mal:
Ersetze dein AND durch ein WHERE

Vielleicht hilfts... kein Gewähr.
 
Leider funktioniert es noch immer nicht,
weil es trotzdem über den INNER JOIN geht, sobald eine Probe freigegeben ist zeigt er mir die Einsendung an.

Danke trotzdem TVE.

lg
juergp
 
Hi Leute

Habe nun die Lösung:
Man sollte die umgekehrte Logik verwenden. *g*

Im INNER JOIN nicht auf Gültigkeit='J' abfragen sondern PROB_FREIGABE<>'N' eingeben
und in der WHERE-Klausel: PROB_FREIGABE IS NOT NULL hinzufügen.
Dann zeigt er nur die Einsendugen an, wo alle Proben freigegeben sind.

lg
juergp
 
Zurück