Einzelnen Beitrag anzeigen

Benutzerbild von joachimd
joachimd

Registriert seit: 17. Feb 2005
Ort: Weitingen
672 Beiträge
 
Delphi 10.4 Sydney
 
#10

AW: SQL - Nach nicht direkt gegebenem Datum suchen

  Alt 8. Apr 2016, 10: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);
Joachim Dürr
Joachim Dürr Softwareengineering
http://www.jd-engineering.de
  Mit Zitat antworten Zitat