AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi In SELECT eine "Zählspalte" hinzufügen
Thema durchsuchen
Ansicht
Themen-Optionen

In SELECT eine "Zählspalte" hinzufügen

Ein Thema von PeterRettig · begonnen am 7. Sep 2007 · letzter Beitrag vom 7. Sep 2007
Antwort Antwort
PeterRettig

Registriert seit: 4. Jun 2003
Ort: Schleiz
65 Beiträge
 
Delphi 4 Client/Server
 
#1

In SELECT eine "Zählspalte" hinzufügen

  Alt 7. Sep 2007, 10:52
Datenbank: Firebird • Version: 2.0 • Zugriff über: Zeos
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
Warum kann man Atommüll nicht auf dem Mars lagern?
Mars bringt verbrauchte Energie sofort zurück!
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: In SELECT eine "Zählspalte" hinzufügen

  Alt 7. Sep 2007, 11:38
Ein join auf ein Count-Statement oder einem subselect.
Markus Kinzler
  Mit Zitat antworten Zitat
PeterRettig

Registriert seit: 4. Jun 2003
Ort: Schleiz
65 Beiträge
 
Delphi 4 Client/Server
 
#3

Re: In SELECT eine "Zählspalte" hinzufügen

  Alt 7. Sep 2007, 12:05
Ich verstehe nicht ganz wie das funktionieren soll.

Ausgehend von der Anweisung:
SELECT vorname, nachname FROM ADRESSEN WHERE nachname='Meier' müsste ich diese dann abändern nach irgendetwas in der Art?
(Was so natürlich nicht das gewünschte Ergebnis hervorbringt.)

SQL-Code:
SELECT vorname, nachname FROM adressen
(SELECT count(vorname) AS nummer FROM adressen)
WHERE nachname='Meier'
Leider habe ich nicht die zündende Idee, wie ich hier einen
Zähler zustande bringen sollte.

Gruß, Peter.
Warum kann man Atommüll nicht auf dem Mars lagern?
Mars bringt verbrauchte Energie sofort zurück!
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: In SELECT eine "Zählspalte" hinzufügen

  Alt 7. Sep 2007, 12:10
SQL-Code:
SELECT
    vorname, nachname,
   (SELECT count(vorname) FROM adressen WHERE nachname='Meier') AS nummer
FROM
    adressen
WHERE
    nachname='Meier';
oder besser

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'
Markus Kinzler
  Mit Zitat antworten Zitat
PeterRettig

Registriert seit: 4. Jun 2003
Ort: Schleiz
65 Beiträge
 
Delphi 4 Client/Server
 
#5

Re: In SELECT eine "Zählspalte" hinzufügen

  Alt 7. Sep 2007, 12:30
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!
Warum kann man Atommüll nicht auf dem Mars lagern?
Mars bringt verbrauchte Energie sofort zurück!
  Mit Zitat antworten Zitat
Benutzerbild von vsti
vsti

Registriert seit: 20. Sep 2004
Ort: Syke
70 Beiträge
 
Delphi 2005 Architect
 
#6

Re: In SELECT eine "Zählspalte" hinzufügen

  Alt 7. Sep 2007, 13:42
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...
Thorsten
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#7

Re: In SELECT eine "Zählspalte" hinzufügen

  Alt 7. Sep 2007, 15:50
Hallo Leute,

vielleicht interessiert euch dieser Thread: zusaetzliche spalte im dbgrid durchnummerieren

Grüße vom marabu
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#8

Re: In SELECT eine "Zählspalte" hinzufügen

  Alt 7. Sep 2007, 16:51
1. Vorschlag : SP
2. Vorschlag : SELECT COUNT (*) FROM TABLE??
3. Vorschlag : Datenmenge ermitteln und im Programm durchzählen
Gruß
Hansa
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:25 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz