Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi SQL Abfrage Nummerieren? Wie geht das? (https://www.delphipraxis.net/68275-sql-abfrage-nummerieren-wie-geht-das.html)

polondo 27. Apr 2006 10:11

Datenbank: MSQL 2000 • Zugriff über: ADO

SQL Abfrage Nummerieren? Wie geht das?
 
Hi,

Wie ist es möglich in einer Abfrage wie dieser hier:
SQL-Code:
select * from invoice
eine Art Nummer vor jede Zeile zu bekommen? Dabei soll diese Nummer eben eben eine Durchnummerierung aller wiedergegebenen Zeilen sein.
Ich habe selbst dieses hier versucht:

SQL-Code:
select count(*) as Rank ,prod_id,name from product
group by prod_id,name
order by rank
leider bekomme ich aber nur das hier wiedergegeben:
SQL-Code:
rank       prod _ id           name
1           1                    test1
1           23                   test2
1           89                   test3
1           112                  test4
1           115                  test5
Wie Ihr sehen könnt gibt der mir immer nur den COUNT der jeweiligen Zeile wieder aber keine Addition um den Wert 1.


Hoffe einer was weiter

mfg R.

Kedariodakon 27. Apr 2006 10:48

Re: SQL Abfrage Nummerieren? Wie geht das?
 
Sowas hatten wir gestern schon, vielleicht hilft dir das weiter:

MySQL und Zeilennummer im Select...

Edit:
Zu MSSQL wär zu sagen, dass es möglich wär im ADOQuery ein Berechnetes Feld zu deklarieren und bei der Berechnung einfach die aktuelle Recordnummer reinzuschreiben.

Bye

rwachtel 27. Apr 2006 10:53

Re: SQL Abfrage Nummerieren? Wie geht das?
 
SQL-Code:
select (select count(*) from PRODUCT as B where (B.PROD_ID <= A.PROD_ID)) as RANK, A.PROD_ID, A.NAME
from PRODUCT as A
order by PROD_ID

polondo 27. Apr 2006 11:12

Re: SQL Abfrage Nummerieren? Wie geht das?
 
danke schonmal für die antworten.
leider hilft mir die 2te antwort nicht weiter da er mir bei wechselnden prod_ids nur die pord_id wiedergibt und nicht die nummerierung.


mfg R.

rwachtel 27. Apr 2006 11:24

Re: SQL Abfrage Nummerieren? Wie geht das?
 
??? Das musst Du mir erklären!

mquadrat 27. Apr 2006 11:32

Re: SQL Abfrage Nummerieren? Wie geht das?
 
Ich würd ne Stored-Procedure nehmen, die das Feld hochzählt vor der Ausgabe.. Dürfte auch schneller sein, als das verschachtelte Select

Kedariodakon 27. Apr 2006 11:37

Re: SQL Abfrage Nummerieren? Wie geht das?
 
Zitat:

Zitat von rwachtel
SQL-Code:
select (select count(*) from PRODUCT as B where (B.PROD_ID <= A.PROD_ID)) as RANK, A.PROD_ID, A.NAME
from PRODUCT as A
order by PROD_ID

Das geht warscheinlich nicht, da PROD_ID scheinbar kein Prim schlüssel ist, falls er das is, sollte das auch gehn..

Bye

Kedariodakon 27. Apr 2006 11:40

Re: SQL Abfrage Nummerieren? Wie geht das?
 
Zitat:

Zitat von mquadrat
Ich würd ne Stored-Procedure nehmen, die das Feld hochzählt vor der Ausgabe.. Dürfte auch schneller sein, als das verschachtelte Select

Ich würd das berechnete Feld nehmen, falls möglich, da so der SQLserver nur das normale Select macht und der Client nur einmal über die Komplette Datenmenge gehen muss...

Oder irre ich mich?

Bye

rwachtel 27. Apr 2006 11:43

Re: SQL Abfrage Nummerieren? Wie geht das?
 
Im Prinzip hast Du recht, der OP hat aber explizit nach einer SQL-Lösung gefragt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:19 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