WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Programmierung (http://www.wcm.at/forum/forumdisplay.php?f=17)
-   -   SQL Query - Syntax (INNER JOIN...) (http://www.wcm.at/forum/showthread.php?t=103878)

renew 28.07.2003 11:45

SQL Query - Syntax (INNER JOIN...)
 
So, mal schaun ob ein paar SQL Gurus da sind. :)

Ich hab 2 Tabellen, in einer stehen die Werte die ich zum Arbeiten brauche(dbo.[Retouren an Lieferanten KOEPFE]), und ID s von Lieferanten.
Die Namen der Lieferanten stehen in einer anderen Tabelle. (dbo.AKDST)

Wenn ich die beiden jetzt miteinander verknüpfe, bekomme ich natürlich nur die Datensätze, die in beiden Tabellen vorkommen.

Das ist die Abfrage dazu:
Code:

SELECT    dbo.[Retouren an Lieferanten KOEPFE].NL AS NL, dbo.[Retouren an Lieferanten KOEPFE].AKONTO AS LiefNr, RTRIM(LTRIM(dbo.AKDST.FIRMA1))
                      + ' ' + dbo.AKDST.firma2 AS LiefName, dbo.[Retouren an Lieferanten KOEPFE].NL_Beleg AS RL_Nr
FROM        dbo.[Retouren an Lieferanten KOEPFE] INNER JOIN
                      dbo.AKDST ON dbo.[Retouren an Lieferanten KOEPFE].NL + dbo.[Retouren an Lieferanten KOEPFE].AKONTO = dbo.AKDST.AKONTO

Jetzt kanns aber sein, dass in der Tabelle wo die Namen (dbo.AKDST) der Lieferanten steht, nicht alle LieferantenIDs aus der 1. Tabelle (dbo.[Retouren an Lieferanten KOEPFE]) eingetragen sind --> es fehlen ein paar Datensätze die mit der Abfrage nicht angezeigt werden.

Jetzt würde ich genau umgekehrt eine Abfrage basteln, welche mir die Datensätze anzeigt die NICHT in der anderen Tabelle vorhanden sind.
Ich hab mich schon ein wenig damit gespielt, aber leider bin ich net wirklich auf einen grünen Zweig gekommen. :( ;)

Vielleicht könnts ihr mir dabei helfen. :)

renew 28.07.2003 12:07

ok, habs doch selber zusammengebracht... ;)
Ein kleines Studium von "SQL in 21 Tagen" von MuT wirkt manchmal wundern. :)

Die Lösung ist:
Code:

SELECT    dbo.[Retouren an Lieferanten KOEPFE].NL AS NL, dbo.[Retouren an Lieferanten KOEPFE].AKONTO AS LiefNr, RTRIM(LTRIM(dbo.AKDST.FIRMA1))
                      + ' ' + dbo.AKDST.firma2 AS LiefName, dbo.[Retouren an Lieferanten KOEPFE].NL_Beleg AS RL_Nr
FROM        dbo.[Retouren an Lieferanten KOEPFE] LEFT OUTER JOIN
                      dbo.AKDST ON dbo.[Retouren an Lieferanten KOEPFE].AKONTO = dbo.AKDST.AKONTO
WHERE    (dbo.AKDST.FIRMA1 IS NULL)



Alle Zeitangaben in WEZ +2. Es ist jetzt 10:20 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag