Du kannst es auch so lösen:
SQL-Code:
Select ID,
Bezeichnung,
(select top 1 preis
from Preise
where Preise.ID = Artikel.ID and Preise.Datum <= '1.1.2006'
order by Preise.Datum desc
)
from Artikel
Die ORDER BY Klausel macht die Abfrage langsam. Wenn Du einen Clustered Index auf Preise.Datum setzt, ist die Welt aber wieder in Ordnung,weil das ORDER BY dann weggekürzt wird.
Das würde ich für die schnellste und einfachste Lösung halten.