![]() |
Datenbank: Firebird • Version: 2.0 • Zugriff über: Zeos
In SELECT eine "Zählspalte" hinzufügen
Hallo,
ich möchte bei einer bestehenden SQL-Abfrage eine zusätzliche "virtuelle Spalte" zurückbekommen, die einfach einen Zählwert von 1 aufwärts enthält. Ich habe also beispielsweise eine Tabelle mit Vorname und Name. Hans / Meier Hans / Müller Klaus / Meier Wenn ich jetzt eine Abfrage mit einer beliebigen Where-Klausel stelle soll als Ergebnis 1 Hans Meier 2 Klaus Meier herauskommen (wenn ich z.B. nach Nachname = 'Meier' gefragt hätte. Vielen Dank im Voraus... Peter |
Re: In SELECT eine "Zählspalte" hinzufügen
Ein join auf ein Count-Statement oder einem subselect.
|
Re: In SELECT eine "Zählspalte" hinzufügen
Ich verstehe nicht ganz wie das funktionieren soll.
Ausgehend von der Anweisung:
SQL-Code:
müsste ich diese dann abändern nach irgendetwas in der Art?
SELECT vorname, nachname FROM ADRESSEN WHERE nachname='Meier'
(Was so natürlich nicht das gewünschte Ergebnis hervorbringt.)
SQL-Code:
Leider habe ich nicht die zündende Idee, wie ich hier einen
SELECT vorname, nachname FROM adressen
(SELECT count(vorname) AS nummer FROM adressen) WHERE nachname='Meier' Zähler zustande bringen sollte. Gruß, Peter. |
Re: In SELECT eine "Zählspalte" hinzufügen
SQL-Code:
oder besser
SELECT
vorname, nachname, (SELECT count(vorname) FROM adressen WHERE nachname='Meier') AS nummer FROM adressen WHERE nachname='Meier';
SQL-Code:
SELECT
vorname, nachname, (SELECT count(vorname) FROM adressen GROUP BY Nachname where nachame = a.nachname;) AS nummer FROM adressen a WHERE nachname='Meier' |
Re: In SELECT eine "Zählspalte" hinzufügen
Ich glaube ich habe mich da nicht deutlich genug ausgedrückt.
Die Zählvariable soll eine Art laufende Nummer fungieren. Mit der genannten SQL.Anweisung erhalte ich ja nur die Anzahl der Einzelsätze und das würde in dieser einfachen Form stets eine 1 ausgeben! |
Re: In SELECT eine "Zählspalte" hinzufügen
Die Problematik hatte ich auch schonmal. Leider ist Firebird da nicht so weit wie andere Datenbanksysteme. z.B. Oracle hat IMHO die Funktion ROWNUM die man einfach als Spalte aufrufen kann. Bei Firebird muss sowas erst über eine eigene UDF eingebracht werden.
Hab am Ende einfach wärend der Ausgabe die Zeilen manuell hochgezählt. Zugegeben nicht so schön wie über SQL, aber vielleicht hat jemand ja noch ne bessere Lösung parat... Würde mich auch interessieren... :firejump: |
Re: In SELECT eine "Zählspalte" hinzufügen
Hallo Leute,
vielleicht interessiert euch dieser Thread: ![]() Grüße vom marabu |
Re: In SELECT eine "Zählspalte" hinzufügen
1. Vorschlag : SP
2. Vorschlag : SELECT COUNT (*) FROM TABLE?? 3. Vorschlag : Datenmenge ermitteln und im Programm durchzählen |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:03 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