Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   SQL-JOIN: DS oder NULL (https://www.delphipraxis.net/122879-sql-join-ds-oder-null.html)

Angel4585 23. Okt 2008 18:41

Datenbank: MySQL • Version: Fümpf • Zugriff über: php

SQL-JOIN: DS oder NULL
 
Hallo,

ich suche mal wieder nach nem SQL-Statement:

Tabelle A: Arbeitgeber(id,name)
Tabelle B: Arbeitnehmer(id,name,typ)
Tabelle C: Arbeitsvertraege(id,ag,an,anfang,ende)

Wenn ein AN noch beim AG arbeitet, steht bei Ende "0" drin, ansonsten der Zeitpunkt wo er aufgehört hat.
Bei AN steht bei typ eine Zahl zwischen 1 und 6.
Ein AG hat immer nur einen AN vom selben Typ gleichzeitig.

Nun brauche ich ein SQL-Statement, welches mir alle AG zurückliefert.
Zusätzlich möchte ich über einen Join zu jedem AG den AN mit typ 4.
Wenn ein AG keinen AN vom typ 4 hat, soll NULL drinstehn.

Ich hab einiges versucht, aber ich bekomm höchstens die Einträge der AG die einen entsprechenden AN haben, aber die die keinen AN haben bekomm ich nciht.



:angel:

mkinzler 23. Okt 2008 18:44

Re: SQL-JOIN: DS oder NULL
 
IIF(), CASE ... WHEN, NULLIF()

DeddyH 23. Okt 2008 18:46

Re: SQL-JOIN: DS oder NULL
 
Zeig mal Deine Abfrage, ich denke, Du hast einen INNER JOIN gemacht, brauchst aber einen OUTER JOIN.

Angel4585 23. Okt 2008 18:48

Re: SQL-JOIN: DS oder NULL
 
meine abfrage sah so aus:
SQL-Code:
select * from AG left outer join AV on AV.ag=AG.id left outer join AN on AN.id=AV.an where AV.typ=4 and AV.ende=0
Ich probier mal noch bissl rum

DeddyH 23. Okt 2008 18:54

Re: SQL-JOIN: DS oder NULL
 
SQL-Code:
select * from AG
left outer join AV on AV.ag=AG.id
left outer join AN on AN.id=AV.an and AV.typ=4 and AV.ende=0
Bin mir selber aber gerade nicht sicher.


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:14 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz