Forum: SQL |
Thema:
OUTER JOIN will nicht wie ich will :-( |
Von:
Jens Buthe (
14.03.2006 11:02) |
Hi all,
einer unserer Prozesse schreibt Daten in eine Tabelle (ObjectID (int), WertDatum (smalldatetime), Wert (float)) eines SQL2000-Servers.
Für die ersten 24h schreibt er einen Wert pro Stunde (immer zur vollen Stunde). Ab dem 2. Tag schreibt er nur noch einen Wert pro Tag (immer um 04:00 morgens).
Ich brauche jetzt allerdings alle Stundenwerte für das ganze Jahr. Ich habe mir also eine Hilfstabelle mit einem smalldatetime-Datumsfeld erstellt (id (int), Datum (smalldatetime)), die die Daten für jede Stunde des Jahres beinhaltet (also vom '01.10.2006 04:00' bis '01.10.2007 03:00', 8760 Zeilen (gefüllt per StoredProcedure, wobei auch hier alle Datenformate in smalldatetime gehalten wurden)).
Mein Gedanke war nun mit Hilfe eines Outer-Joins mir alle Datums-Werte aus der Hilfstabelle auszugeben, inklusive aller dazu vorhandenen Werte aus meiner Wertetabelle bzw. falls keine Einträge vorhanden, die Werte mit NULL zu füllen.
Also:
select h.Datum, w.Wert
from Hilfstabelle h left outer join Wertetabelle w
on h.Datum = w.WertDatum
where w.ObjectID = 42
order by h.Datum
Mein Problem ist nun, dass ich trotz OUTER JOIN (ob RIGHT oder LEFT) immer nur die Werte angezeigt werden, die in der Wertetabelle vorhanden sind, das OUTER wird komplett ignoriert! :-(
Bitte sagt mir, ob ich einen Denkfehler mache bzw. wo der Fehler liegen könnte, denn so langsam beginne ich an meinem Verstand bzw. dem Verstand des SQL-Servers zu zweifeln!
Danke!
jens
Betreff |
Von |
Datum |
|
|
Re: OUTER JOIN will nicht wie ich will :-(
Hallo Jens,<br>sorry aber du fragst doch genau ab on h.Datum = w.WertDatum<br>das ist es wahrscheinlich. Lässt sich ohne die Tab schwer nachvollziehen für mich. Bin auch nicht so gut in SQL.<br>Aber für... |
|
|
|
|
|
Thomas
Scherner
|
14.03.2006 13:12 |
|
|
Antworten
Vorsicht bei der Eingabe: Die Zeichen ' oder -- sind nicht erlaubt!