Nee das wird so einfach nicht funktionieren, da ja nicht jeden Tag der gültige Preis eingetragen wird. Das heißt man muss die letzte Aktualisierung vor dem Datum berücksichtigen.
Sowas könnte funktionieren:
SQL-Code:
DECLARE @Suchdatum datetime;
SET @Suchdatum = '01.01.2006'
SELECT a.Name, p.Preis
FROM artikel AS a
LEFT JOIN preise AS p ON p.Artikel = a.ID
WHERE p.Datum <= @Suchdatum AND
p.Datum = (SELECT max(preise.Datum) FROM preise WHERE preise.Artikel = a.ID AND preise.datum <= @Suchdatum)
Das sollte dir das gewünschte Ergebnis liefern. (hoffe ich
)