Base- Newbie will Mittelwert ausrechnen lassen

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

Barlee
******
Beiträge: 767
Registriert: Sa, 17.12.2005 12:27

Re: Base- Newbie will Mittelwert ausrechnen lassen

Beitrag 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
Barlee
******
Beiträge: 767
Registriert: Sa, 17.12.2005 12:27

Re: Base- Newbie will Mittelwert ausrechnen lassen

Beitrag 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
Antworten