Seite 1 von 1

Re: Base- Newbie will Mittelwert ausrechnen lassen

Verfasst: Sa, 22.11.2008 14:34
von Barlee
Hallo erklärbär,

ja, den Mittelwert kannst Du in einer Abfrage berechnen lassen. Über Werte einer Spalte durch Einsatz von AVG(Spaltenname) und anschließender Gruppierung oder in Deinem Fall durch Summe der einzelnen Spaltenwerte und anschließender Division durch die Anzahl beteiligter Spalten.
Angenommen Du hast 3 Spalten (Spalte1, Spalte2, Spalte3). Darüber soll der Mittelwert gebildet und in der Ergebnisspalte "Mittelwert" ausgegeben werden. Die Abfrage dazu lautet:

Code: Alles auswählen

SELECT
Spalte1,
Spalte2,
Spalte3,
(Spalte1+Spalte2+Spalte3)/3 AS MITTELWERT
FROM
[Deine_Tabelle]
Ändern sich die Werte in der Ausgangstabelle, dann wird auch das Ergebnis in der (erneut ausgeführten) Abfrage aktualisiert.
Reicht Dir der Mittelwert als Ergebnis einer Abfrage oder soll dieser zwingend in die Ausgangstabelle eingetragen werden? Letzteres sollte man vermeiden, da das Berechnungsergebnis nicht automatisch aktualisiert wird, falls sich die Ausgangswerte ändern.
Nichtsdestotrotz hier die Vorgehensweise zum (automatischen) Eintragen des Mittelwerts in eine leere Spalte der Ausgangstabelle. Voraussetzung ist, dass Deine Ausgangstabelle -ich nenne sie im Beispiel Tab_Mittelwert- eine eindeutige Spalte "ID" hat.
Dann kannst Du unter Extras/SQL folgenden Code ausführen ("MW" steht für die Spalte, in die der Mittelwert eingetragen wird):

Code: Alles auswählen

UPDATE "Tab_Mittelwert" SET "MW" = (SELECT ("Spalte1"+"Spalte2"+"Spalte3")/3 FROM "Tab_Mittelwert" AS "X" WHERE "Tab_Mittelwert"."ID" = "X"."ID")
Dieser Code füllt die leere Spalte "MW" mit dem Mittelwert der beteiligten Spalten auf.
Ändern sich die Werte der Ausgangstabelle, dann musst Du diesen Code erneut ausführen. Automatisch passt sich das Ergebnis nicht an.

Gruß Barlee

Re: Base- Newbie will Mittelwert ausrechnen lassen

Verfasst: Sa, 29.11.2008 23:50
von Barlee
Hallo erklärbär,

Code: Alles auswählen

(COALESCE("Spalte1",0) + COALESCE("Spalte2",0) + COALESCE("Spalte3",0) ) / 3 AS "MITTELWERT" FROM ...
Prüft für die Spalten 1 bis 3, ob diese NICHT NULL sind. Wenn, dann wird der jeweilige Spaltenwert zurückgegeben; ansonsten der Wert "0". Eine Berechnung des Mittelwerts kann somit erfolgen, da kein DB-NULL Wert mehr vorkommt.

Gruß Barlee