PDA

View Full Version : mit SQL nur 100 größte Sätze lesen



holly
30-01-03, 14:21
Hi all,
Ich möchte aus einer Datei mit SQL die Sätze auswählen mit den 100 größten Werten eines Feldes. z.B. die Kundenummern der 100 umsatzstärsten Kunden.
Vielen Dank im Voraus
Holger

karin-vogelmann
30-01-03, 14:49
hi,
in anderen sql-umgebungen klappt TOP oder LIMIT, vielleicht findest du was ähnliches für die 400 in der doku.
gruß, karin

horschma
30-01-03, 16:31
Hallo,
versuchs mal mit

select .... order by umsatz desc fetch first 100 rows only

Gruß Thomas

Fuerchau
30-01-03, 16:51
"fetch n rows only" wird leider erst ab V5 unterstützt.
Es bleibt einem halt nichts anderes übrig, als nach n Sätzen mit dem fetch selber aufzuhören, d.h., die Anzahl der Sätze selbst zu zählen.

holly
31-01-03, 08:00
Mir ist selbst noch eine Variante eingefallen:
Die Datei in eine andere (temporäre) Datei einfügen, in der Sie nach
dem Umsatz absteigend sortiert ist.
Anschließend mit relativ-record_number arbeiten :
SELECT * FROM dateineu WHERE RRN(dateineu) <= 100
Holger



[Dieser Beitrag wurde von holly am 31. Januar 2003 editiert.]

Fuerchau
31-01-03, 09:08
@holger

Die Lösung ist zwar ganz nett, ist aber
1. unzureichend wenn man mit Query auswerten will , da rrn(*) von Query nicht unterstützt wird und
2. Per Programm nach 100 Fetch aufzuhören ist erheblich effektiver.

Deine Lösung kann man für Query nur dahingehend erweitern, dass nach der Ausgabe in die Datei mittels CPYF nur 100 Sätze in eine 2. Datei kopiert werden und diese dann per Query ausgewertet werden kann.