Thema: Delphi Top bei Union Abfrage

Einzelnen Beitrag anzeigen

Benutzerbild von joachimd
joachimd

Registriert seit: 17. Feb 2005
Ort: Weitingen
679 Beiträge
 
Delphi 12 Athens
 
#8

Re: Top bei Union Abfrage

  Alt 3. Apr 2009, 10:51
So, hier nun eine Script-Lösung, die absolut flexibel ist. Es ist im Prinzip egal, wieviele Felder in der Quelltabelle (hier #test) stehen. Die letzte Abfrage erstellt dann aus der ID-Liste (#result) das, was Du schliesslich benötigst.
Übrigens: Du musst das nicht als Stored Procedure anlegen. Einfach komplett in eine TAdsQuery verpacken und gut.

SQL-Code:
declare c cursor as select distinct(land) from #test;

try
  drop table #result;
catch all
end try;

create table #result(id integer);

open c;
while fetch c do
  insert into #result select top 5 id from #test where land=c.land order by umsatz desc;
end while;
close c;

select a.* from #test a
  inner join #result b on a.id=b.id
order by land, umsatz desc
Joachim Dürr
Joachim Dürr Softwareengineering
http://www.jd-engineering.de
  Mit Zitat antworten Zitat