![]() |
Datenbank: Interbase • Version: 6.xx • Zugriff über: BDE
Rang von Datensätzen ermitteln
Hallo,
gibt es eine Möglichkeit den Rang der Datensätze aus einem Select zu bekommen? Oder wie kann ich das anstellen? Hintergrund: Ich muss eine Baustruktur in der Datenbank nach bestimmten Kriterien sortieren. Diese Sortierung soll in einem Feld gespeichert werden. Ich würde das ganze gerne mittels einem SQL-Statement erledigen. Was mir Fehlt, wie ich die Reihenfolge bestimme/erhalte. Was ich mir vorstelle (Beispiel)...
Code:
Ergebnis:
SELECT RANK() as 'rang', spieler FROM tabelle ODER BY tore
Code:
rang spieler
1 Hans 2 Uwe 3 Fritz ... |
AW: Rang von Datensätzen ermitteln
Ohne jetzt großartig nachgedacht zu haben behaupte ich, mit einer SP müsste das gehen.
|
AW: Rang von Datensätzen ermitteln
Du müsstest ein weiteres Feld anlegen. Die Datensätze haben keine eigentliche Ordnung innerhalb der Tabelle
|
AW: Rang von Datensätzen ermitteln
Zitat:
|
AW: Rang von Datensätzen ermitteln
Und wie wird der ermittelt?
|
AW: Rang von Datensätzen ermitteln
|
AW: Rang von Datensätzen ermitteln
Zitat:
@user0815 ich nutze Interbase! |
AW: Rang von Datensätzen ermitteln
Also wenn ich das richtig verstanden habe, dann ist dieser "Rang" nichts anderes als die Satznummer in der Ergebnismenge.
Wie Detlev schon schrieb SP! Da die Datensätze aber in ein Delphi-Programm eingebettet sind, würde ich die Nummerierung durch das Delphi-Programm erledigen lasse, das erspart Datenverkehr. Gruß K-H |
AW: Rang von Datensätzen ermitteln
Versuch es mal hiermit (ich bin kein großer SP-Experte, aber bei einem ersten Test sah das ganz gut aus):
SQL-Code:
Das wurde zwar unter Firebird geschrieben, sollte aber unter Interbase auch funktionieren.
SET TERM ^ ;
CREATE OR ALTER PROCEDURE Spielerranking RETURNS ( RANK integer, SPIELERNAME varchar(60), TORE integer) As BEGIN rank = 0; FOR SELECT Name, Tore FROM spieler ORDER BY Tore DESC INTO :spielername, :tore DO BEGIN rank = rank + 1; SUSPEND; END END^ SET TERM ; ^ [edit] Sortierreihenfolge auf absteigend geändert, macht wahrscheinlich mehr Sinn :) [/edit] |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:52 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz