Registriert seit: 17. Feb 2005
Ort: Weitingen
679 Beiträge
Delphi 12 Athens
|
AW: SQL - Nach nicht direkt gegebenem Datum suchen
8. Apr 2016, 11:15
Wenn Du eine nach Datum aufsteigende eindeutige ID hättest, wäre es Standard
Du willst zunächst wissen, welche Datensätze in Frage kommen:
Code:
select artikelid, max(datum) as datum
from #preise
where datum<='2010-01-01' -- your date here
group by artikelid
Das Ergebnis wird in einem INNER JOIN mit der Ursprungs-Tabelle verknüpft
Code:
select p.* from #preise p
inner join
(
select artikelid, max(datum) as datum
from #preise
where datum<='2010-01-01' -- your date here
group by artikelid
) pl
on (p.artikelid=pl.artikelid) and (p.datum=pl.datum)
Hinweis: Dies ist in Advantage Database getestet - da es aber SQL Standard ist, sollte es sogar ACCESS können.
#preise ist eine temp-Tabelle zum Testen, wie folgt erzeugt:
Code:
create table #preise(
id autoinc,
artikelid integer,
datum date,
preis money
);
insert into #preise(artikelid,datum,preis) values(1,'2012-01-01',12);
insert into #preise(artikelid,datum,preis) values(1,'2011-01-01',11);
insert into #preise(artikelid,datum,preis) values(1,'2010-01-01',10);
insert into #preise(artikelid,datum,preis) values(1,'2009-01-01',9);
insert into #preise(artikelid,datum,preis) values(2,'2012-01-01',24);
insert into #preise(artikelid,datum,preis) values(2,'2011-01-01',23);
insert into #preise(artikelid,datum,preis) values(2,'2010-01-01',22);
insert into #preise(artikelid,datum,preis) values(2,'2009-01-01',21);
|