Hallo Leute,
ich habe irgendwie ein Problem, was ich nicht verstehe.
Soviel ich weiß macht man doch ein Left Join, wenn man von einer Tabelle alles ausgegeben haben möchte, obwohl es mit der 2ten tabelle keine Übereinstimmungen gibt.
Also ich habe folgenden Code:
DECLARE @RC int
DECLARE @thisDate datetime
SET @thisDate = '02.12.2010'
SELECT i.artnr, i.[name], i.preis , u.anzahl, u.datum
FROM Item i
LEFT OUTER JOIN umsatz u ON i.id = u.item and u.datum = @thisdate
WHERE i.artnr > 0
ORDER BY artnr asc
mit dem @thisdate bekomme ich 38348 Zeilen als Ergebnis zurück.
Wenn ich @thisDate auf '01.12.2010' setze bekomme ich 38432 Zeilen raus.
Wenn ich select * from item mache, dann bekomme ich 38275 Zeilen raus.
Sehe ich den Fehler vielleicht nicht? Oder benutze ich den LEFT JOIN falsch?
Bitte um Feedback.
Grüße
ich habe irgendwie ein Problem, was ich nicht verstehe.
Soviel ich weiß macht man doch ein Left Join, wenn man von einer Tabelle alles ausgegeben haben möchte, obwohl es mit der 2ten tabelle keine Übereinstimmungen gibt.
Also ich habe folgenden Code:
DECLARE @RC int
DECLARE @thisDate datetime
SET @thisDate = '02.12.2010'
SELECT i.artnr, i.[name], i.preis , u.anzahl, u.datum
FROM Item i
LEFT OUTER JOIN umsatz u ON i.id = u.item and u.datum = @thisdate
WHERE i.artnr > 0
ORDER BY artnr asc
mit dem @thisdate bekomme ich 38348 Zeilen als Ergebnis zurück.
Wenn ich @thisDate auf '01.12.2010' setze bekomme ich 38432 Zeilen raus.
Wenn ich select * from item mache, dann bekomme ich 38275 Zeilen raus.
Sehe ich den Fehler vielleicht nicht? Oder benutze ich den LEFT JOIN falsch?
Bitte um Feedback.
Grüße
Comment