Subquery mit Oracle 8.i

Hallo liebe Wissenden,
ich glaube ich stehe auf der Leitung:
gerade habe ich versucht folgenden Left outer Join alternativ als Subquery zu formulieren:

//
select a.auftrag_nr, r.auftrag_nr
from auftraege a, rechnungen r
where a.auftrag_nr(+)=r.auftrag_nr and r.auftrag_nr is null;
//

Herausgekommen ist dieses dabei - funzt aber nicht (siehe * an der Stelle Wo’s
verkehrt sein soll)

select a.auftrag_nr from auftraege a where(select r.auftrag_nr from rechnungen r where a.auftrag_nr=r.auftrag_nr) and r.auftrag_nr is null; *(Ausdruck fehlt)

Wie ich den kopf auch drehe und wende, ich komm nicht drauf,
was ich abändern muss… könnt ihr mir helfen??

Vielen Dank für Eure Mühen,
karotier

hi!

select a.auftrag_nr, r.auftrag_nr
from auftraege a, rechnungen r
where a.auftrag_nr(+)=r.auftrag_nr and r.auftrag_nr is null;

was willst du mit diesem select bezwecken? alle auftraege und rechnungen, bei denen die auftragsnummer null ist?? ein join also über null-values???
einfach ein

where a.auftrag_nr is null and r.auftrag_nr is null

zusammenjoinen kannst hier allerdings nix (wie auch bei null-values???)

grüße,
ein bißchen verwirrter tomh

Hallo zusammen!

Gebe tomh mal uneingeschränkt recht, die Abfrage scheint in dieser Form sinnlos zu sein.

Ich vermute das sollte ein Select werden, der die Aufträge ausgibt, für die keine Rechnung existiert (oder umgekehrt). Richtig wäre der dann so (für A ohne R):

select a.auftrag\_nr, r.auftrag\_nr
from auftraege a, rechnungen r
where a.auftrag\_nr=r.auftrag\_nr**(+)** and r.auftrag\_nr is null;

Für R ohne A müßte man dann natürlich „a.“ und „r.“ in der WHERE Klausel austauschen. Obiges Statement mit Sub-Select könnte zum Beispiel so aussehen:

select a.auftrag\_nr
from auftraege a
where not exists (select \* from rechnungen r where r.auftrag\_nr=a.auftrag\_nr);

Ich hoffe, das beantwortet die Frage.

Gruß,
TheBeast

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]