![]() |
Datenbank: firebird • Version: 2.5 • Zugriff über: Delphi XE
Select Frage zu Count(*)
Hallo zusammen,
ich wollte fragen ob es möglich ist die Anzahl der Zeilen einer Select Abfrage zusammen mit der ganzen Tabelle auszugeben?
Code:
Wie muss ich das Group by schreiben? Bei mir kommt immer ein "Invalid expression" Fehler. Ich möchte alle Namen und Städte ausgegeben haben, und als 3. Spalte die Anzahl der ganzen Zeilen, auch wenn sie bei jeder Zeile bei der Abfrage steht.
Select
count(*) as Test, Name, City from Employee |
AW: Select Frage zu Count(*)
Hallo,
wozu soll das Group By da helfen? Mach mal ein Beispiel mit 3 Werten, also welche Werte in der Tabelle stehen und was rauskommen soll. Select (Select count(*) Employee E1 as Test), E2.Name, E2.City from Employee E2 Das ergibt als Spalte 1 immer die Gesamtzahl der Zeilen (also der Einträge in der Tabelle Employee) und als Spalten 2/3 Name und Ort |
AW: Select Frage zu Count(*)
Entweder als Subselect oder einen Join
|
AW: Select Frage zu Count(*)
Ich bin nicht sicher, was du zählen möchtest.
Das da
Code:
liefert die Anzahl unterschiedlicher Einträge von City und Name.
Select
count(*) as Test, Name, City from Employee Group by Name, city |
AW: Select Frage zu Count(*)
Das da
Code:
liefert dir die Anzahl der Tabelle und dann jeden (auch doppelte) Einträge.
Select
(select count(*) from Employee) as anzahl, Name, City from Employee |
AW: Select Frage zu Count(*)
Danke für die Antwort,
okay. Was ist wenn ich innerhalb einer Select Procedure bin mit 20 Eingabeparametern? Wäre es auch möglich einfach das Suspend zu zählen? x.x
Code:
select
DBDATE, DBUSER, DBKORRDATE, DBKORRUSER, . . . ITEM from SELECT_PROCEDURE( :IN_ZULASSUNG, *hier stehen min 20 Parameter*) |
AW: Select Frage zu Count(*)
Das ist ein bisschen im Trüben fischen. Kannst du genauer sagen, was du erzielen möchtest?
Die kurzen Antworten auf deine Fragen lauten: * nicht viel * ja |
AW: Select Frage zu Count(*)
Hallo,
Zitat:
Counter=0; For Select Into do begin Counter=Counter+1; Suspend; end; Dann bekommst Du sowas wie 1 Halle 2 Berlin Aber ohne mal eine klare Ausgabe, was konkret Du dir wünschst, sage ich nichts mehr ;) |
AW: Select Frage zu Count(*)
Dann ist der richtige Wert nur im letzen Datensatz.
|
AW: Select Frage zu Count(*)
Ah... mit einem Counter hab hatte ich es versucht, aber hatte nicht die Logik bedacht, das es ja nur im letzten Datensatz steht.
Danke. ^^ |
AW: Select Frage zu Count(*)
Zitat:
hat nur nicht funktioniert, weil ich nicht bedacht hatte denn letzten Eintrack zu lokalisieren. Dataset.last und es funktioniert jetzt. |
AW: Select Frage zu Count(*)
Hi,
also wenn ich es richtig sehe, dann versteht Firebird auch Window-Functions. Wenn das so ist, dann sollte dir dieser SELECT das passende liefern:
Code:
Hab jetzt keinen Firebird da, aber im SQL-Server klappt das. Und Anzahl ist dann in jeder Zeile die Gesamt-Anzahl der Zeilen in der Tabelle - nicht die Anzahl der Zeilen in der GROUP BY Gruppe.
SELECT
COUNT(*) OVER() AS Anzahl, Name, City FROM Employee GROUP BY Name, City Und das ist wirklich das einfachste was man mit Window-Functions machen kann. Jeder der SQL verwendet sollte sich unbedingt auf der Website von Markus Winand ( ![]() HTH und Grüße Daniel |
AW: Select Frage zu Count(*)
Hallo,
Zitat:
for select Counter=1 Counter=Counter+1; Counter an aufrufendes Select übergeben Suspend; end; // for select |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:08 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