![]() |
Datenbank: Firebird • Version: 2.5 • Zugriff über: FibPlus
Select auf Ergebnis aus gleichem Select
Hallo zusammen,
ich wusste nicht wie ich mich ausdrücken soll. Dieser SQL sollte auf das Ergebnis der Tabelle A, einen Count auf das A.Feld machen, aber es sollte eine Abfrage sein.
Delphi-Quellcode:
Ziel ist es, eine Aufstellung zu ein paar Tabellen zu bekommen, in der die Anzahl der Datensätze aufgelistet sind.
Select
A.Nummer, A.Name, (Select Count(*) from A.Name) as Anzahl from Tabelle A Die Frage ist, ist es überhaupt in einer Abfrage möglich? Oder habe ich einen Denkfehler? Gruß Eppos |
AW: Select auf Ergebnis aus gleichem Select
Warum nicht auf die einfache Tour?
SQL-Code:
Dann steht zwar in jeder Zeile "Anzahl" mit drin, aber das war denke ich so auch gewünscht.
Select
A.Nummer, A.Name, Count(*) as Anzahl from Tabelle A |
AW: Select auf Ergebnis aus gleichem Select
Ne so eben nicht.
Er muss den count auf eine andere Tabelle machen, und zwar auf die A.Name. ID | Name | Anzahl _________________________ 1 | TAB1 | 47 33 | TAB2 | 22 12 | TAB3 | 123 8 | TAB4 | 456 |
AW: Select auf Ergebnis aus gleichem Select
Sollte doch mit Group by zu erledigen sein, wenn ich das richtig sehe:
Select A.ID, A.Name, Count(*) from Tabelle A Group by A.ID, A.Name |
AW: Select auf Ergebnis aus gleichem Select
Nicht auf die Tabelle sondern auf das gleiche Feld wie im Select A.NAME
und der wiederum im Select-Count. |
AW: Select auf Ergebnis aus gleichem Select
Es soll ja kein Count von Tabelle A sein, sondern von der Tabelle, die in A.Name steht. Ob das so einfach geht, weiß ich mangels Erfahrung auch nicht, notfalls müsste man über die Systemtabellen gehen.
|
AW: Select auf Ergebnis aus gleichem Select
Jetzt hab ich es auch verstanden. Leider habe ich aber keine Lösung für das Problem.
|
AW: Select auf Ergebnis aus gleichem Select
@DeddyH
Genau so ist es |
AW: Select auf Ergebnis aus gleichem Select
Zitat:
Falls es nicht funktioniert, würde ich das über eine Stored Procedure lösen. |
AW: Select auf Ergebnis aus gleichem Select
In diesem Fall musst du dir die Abfrage manuell zusammenbauen, da ein Tabellennamen nicht parametrisierbar ist
SQL-Code:
execute block
returns ( Nummer int, Name varchar(..), anzahl int) as Select A.Nummer, A.Name from Tabelle A into :Nummer, Name do begin s = 'Select Count(*) from ' || Name ||';'; execute statement s into :anzahl; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:15 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 by Thomas Breitkreuz