Seite 1 von 1

[gelöst] Rechnen mit Ergebnissen von Funktionen wie COUNT in Abfragen mittels Alias? Verständnisfrage

Verfasst: Do 8. Sep 2016, 09:45
von EinsamerBaumWald
Hallo,

folgende Abfrage funktioniert:

Code: Alles auswählen

SELECT "Kraut", SUM( "Gewicht" ) AS "GesamtGewicht", COUNT( "Kraut" ) AS "Anzahl",  SUM("Gewicht") / COUNT("Kraut") AS "Durchschnittsgewicht" FROM "Kräuter" WHERE "verkauft" = 0 GROUP BY "Kraut" ORDER BY "Kraut" ASC
Warum muss ich die Funktionen aber erneut aufrufen und kann die Rechnung nicht mit den vergebenen Aliasen durchführen?
SQL-Status: S0022
Fehler-Code: -28
Column not found: GesamtGewicht in statement

Code: Alles auswählen

SELECT "Kraut", SUM( "Gewicht" ) AS "GesamtGewicht", COUNT( "Kraut" ) AS "Anzahl", "GesamtGewicht" / "Anzahl" AS "Durchschnittsgewicht" FROM "Kräuter" WHERE "verkauft" = 0 GROUP BY "Kraut" ORDER BY "Kraut" ASC
Falls notwendig die zugehörige Datenbank anbei, Abfrage Kräuterbestand.

Re: Rechnen mit Ergebnissen von Funktionen wie COUNT in Abfragen mittels Alias? Verständnisfrage

Verfasst: Do 8. Sep 2016, 16:57
von RobertG
Hallo EinsamerBaumWald,

Du gehst davon aus, dass ein weiter hinten in einer Abfrage liegendes Feld für einen Datensatz automatisch weiß, was vorher im gleichen Datensatz berechnet wurde. Das ist leider nicht der Fall. Der Begriff "GesamtGewicht" ist innerhalb des Datensatze noch nicht weiter verfügbar. Die Berechnungen geschehen gleichzeitig.
Wenn Du den Code so fasst,

Code: Alles auswählen

SELECT "a".*,"GesamtGewicht" / "Anzahl" AS "Durchschnittsgewicht" FROM (SELECT "Kraut", SUM( "Gewicht" ) AS "GesamtGewicht", COUNT( "Kraut" ) AS "Anzahl" FROM "Kräuter" WHERE "verkauft" = 0 GROUP BY "Kraut") AS "a" ORDER BY "Kraut"
dann wird zuerst die Unterabfrage abgehandelt und anschließend die äußere Abfrage. Jetzt ist für die äußere Abfrage der Begriff "GesamtGewicht" verfügbar.

Gruß

Robert

Re: Rechnen mit Ergebnissen von Funktionen wie COUNT in Abfragen mittels Alias? Verständnisfrage

Verfasst: Do 8. Sep 2016, 20:07
von EinsamerBaumWald
Hallo Robert,

vielen Dank für Deine rasche und kompetente Antwort! Manchmal sieht man den Wald vor lauter Bäumen nicht mehr! :D

Grüße,
EinsamerBaumWald