Mehrmalige Verwendung von LEFT JOIN lässt unerwünscht Inhalte unter den Tisch fallen
Hi!
Wie kann ich mehrere Abfragen joinen, ohne meine Ergebnisse von JOIN zu JOIN weiter einzuschränken. Habe gerade keinen blassen Schimmer, wie das gehen soll - könnt Ihr mir unter die Arme greifen?
Danke und schönen Gruß,
stevens
Das ist der Code:
SELECT A.*, A.EndPoint+B.Duration/60/24 AS LoadingTime, A.EndPoint+B.Duration/60/24+C.Duration/60/24 AS UnLoadingTime
FROM (Sched_Union AS A LEFT JOIN Sched_Query1_LoadingTime AS B
ON A.LyoNr = B.LyoNR) LEFT JOIN Sched_TOTAL_2 AS C
ON A.LyoNr = C.LyoNr
Die Spalte LoadingTime setzt auf den EndPoint von A auf und addiert eine Zeitspanne dazu
Die nächste Spalte UnLoadingTime setzt nun ebenfalls auf Endpoint auf, addiert die erste Zeitspanne dazu und zusätzlich noch eine zweite.
Wenn nun in einer Zeile keine LoadingTime existiert, dann kann es aber trotzdem sein, dass eine UnloadingTime existiert.
Allerdings wird bei obigem Code bei fehlender LoadingTime ebenfalls eine existierende UnLoadingTime herausgefiltert und nicht dargestellt...
Wie kann man dies lösen?
Wie kann ich mehrere Abfragen joinen, ohne meine Ergebnisse von JOIN zu JOIN weiter einzuschränken. Habe gerade keinen blassen Schimmer, wie das gehen soll - könnt Ihr mir unter die Arme greifen?
Danke und schönen Gruß,
stevens
Das ist der Code:
SELECT A.*, A.EndPoint+B.Duration/60/24 AS LoadingTime, A.EndPoint+B.Duration/60/24+C.Duration/60/24 AS UnLoadingTime
FROM (Sched_Union AS A LEFT JOIN Sched_Query1_LoadingTime AS B
ON A.LyoNr = B.LyoNR) LEFT JOIN Sched_TOTAL_2 AS C
ON A.LyoNr = C.LyoNr
Die Spalte LoadingTime setzt auf den EndPoint von A auf und addiert eine Zeitspanne dazu
Die nächste Spalte UnLoadingTime setzt nun ebenfalls auf Endpoint auf, addiert die erste Zeitspanne dazu und zusätzlich noch eine zweite.
Wenn nun in einer Zeile keine LoadingTime existiert, dann kann es aber trotzdem sein, dass eine UnloadingTime existiert.
Allerdings wird bei obigem Code bei fehlender LoadingTime ebenfalls eine existierende UnLoadingTime herausgefiltert und nicht dargestellt...
Wie kann man dies lösen?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 142799
Url: https://administrator.de/forum/mehrmalige-verwendung-von-left-join-laesst-unerwuenscht-inhalte-unter-den-tisch-fallen-142799.html
Ausgedruckt am: 20.04.2025 um 18:04 Uhr
2 Kommentare
Neuester Kommentar
Hallo,
so ist das nun mal mit der Mathematik und Access: mit NULL kann man nicht rechnen.
Beispiel:
A.EndPoint+B.Duration/60/24 AS LoadingTime
würde "übersetzt" dann so aussehen:
LoadingTime = 10 + NULL = nichts
das Gleiche passiert natürlich dann auch mit der zweiten Formel, da für B.Duration auch hier wieder NULL "berechnet" wird.
Lösung: sicherstellen, dass B.Duration nicht NULL ist
IIF(ISNULL(B.Duration),0,B.Duration)
das Gleiche natürlich auch für C.Duration!!!
btw gibt es in Access die Funktion DATEADD
http://office.microsoft.com/de-de/access/HA012288101031.aspx?pid=CH1007 ...
Grüße aus Rostock
Wolfgang
(Netwolf)
so ist das nun mal mit der Mathematik und Access: mit NULL kann man nicht rechnen.
Beispiel:
A.EndPoint+B.Duration/60/24 AS LoadingTime
würde "übersetzt" dann so aussehen:
LoadingTime = 10 + NULL = nichts
das Gleiche passiert natürlich dann auch mit der zweiten Formel, da für B.Duration auch hier wieder NULL "berechnet" wird.
Lösung: sicherstellen, dass B.Duration nicht NULL ist
IIF(ISNULL(B.Duration),0,B.Duration)
das Gleiche natürlich auch für C.Duration!!!
btw gibt es in Access die Funktion DATEADD
http://office.microsoft.com/de-de/access/HA012288101031.aspx?pid=CH1007 ...
Grüße aus Rostock
Wolfgang
(Netwolf)