Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Durchschnitt in Abfrage berechnen

Begonnen von Malina, Juni 12, 2024, 08:06:49

⏪ vorheriges - nächstes ⏩

Malina

Hallo zusammen

Ich mühe mich seit Stunden ab und versuche auf eine gute Lösung zu kommen. Ich hab es aufgegeben selber eine Lösung zu erarbeiten und hoffe auf eure Hilfe!
Ich habe eine Tabelle mit diversen Einträgen. Dort trage ich an einem bestimmten Tag drei Temperaturen ein:
Temp_0900
Temp_1200
Temp_1830
Jetzt möchte ich den Durchschnitt dieser drei Temperaturen berechnen und im Feld
Temp_Durchschnitt
ausgeben lassen.
Ich weiss, dass ich mit Avg arbeiten muss. Aber wie kann ich dort mehrere Zellen benutzen? Mit Komma krieg ich eine Fehlermeldung, mit ";" ergibt es ebenfalls eine Fehlermeldung... Ich kriege die Summe hin, aber nicht die Anzahl mit der ich dann rechnen könnte oder dann halt einfach gleich den Durchschnitt (Avg).
Könnt ihr mir bitte helfen?

Besten Dank und liebe Grüsse
Malina

andyfau

Schau Dir die Funktion Davg bei den Aggregatfunktionen an. Bedenke, dass man mit Strings natürlich nicht rechnen kann, Deshalb wundere ich mich warum eine Summe funktionieren soll?

MzKlMu

#2
Hallo,
das geht so nicht. AVG kann bei Feldern nicht benutzt werden, Aggregatfunktionen können nur in einer Spalte benutzt werden.
Die Temperaturen müssen in einer extra Tabelle als je ein Datensatz erfasst werden.

Zeige bitte mal ein Bild des Beziehungsfensters.
Gruß
Klaus

Malina

Okey, danke für die Antwort... Dann muss ich dies anders lösen irgendwie. Ich kann leider nicht die Temperaturen in einer separaten Tabelle erfassen.
Vielleicht mache ich dies zu einem späteren Zeitpunkt wenn es nötig ist. Aber da hängt leider zu viel dran!

PhilS

Zitat von: Malina am Juni 12, 2024, 10:42:10Dann muss ich dies anders lösen irgendwie.
Wenn ich das richtig verstehe, willst du ja nur den Durchschnitt aus deinen drei Werten für jeden Datensatz bilden.
Dafür gibt es keine spezielle Funktion, weil das eigentlich nur eine simple Rechenaufgabe ist:


SELECT (Temp_0900 + Temp_1200 + Temp_1830) / 3 AS Temp_Durchschnitt 
FROM deineTabelle;
Neue Videoserie: Windows API in VBA

Klassische CommandBars visuell bearbeiten: Access DevTools CommandBar Editor

ebs17

Philipp zeigt das Wesen der Durchschnittsberechnung: Summieren der Inhalte und anschließend Teilen durch Anzahl. Zur Vollständigkeit müsste man für sich noch definieren, wie man mit leeren Inhalten umgeht.
Hier ist aber die Berechnung hardcodiert und könnte nur per Umprogrammierung um weitere Elemente ersetzt werden.


Da Du in einer Tabelle erfassen willst, wäre es datenbanktypisch, die Tabellenstruktur zu ändern.
=> VorgangID, Temperatur, Bereich/BereichID
Aus einem Datensatz werden also drei DS, pro Temperatur in der gleichen Spalte ein DS.
Dann klappt das auch simpel mit AVG:
SELECT VorgangID, AVG(Temperatur) AS D
FROM TabX
GROUP BY VorgangID
Um von Deiner bisherigen Tabellenstruktur zur praktikableren zu kommen, gibt es verschiedene Möglichkeiten des Unpivot (oder einfache Handarbeit).
Mit freundlichem Glück Auf!

Eberhard

MzKlMu

Hallo,
Zitatdie Tabellenstruktur zu ändern.
Das hatte ich ja auch vorgeschlagen, aber das will Sie ja nicht.
Aber je länger man mit der Umstrukturierung wartet, umso schwieriger wird der Umbau. Irgenwann werden 4 Temperautur gebraucht (sag niemals nie) und dann muss alles umgebaut und ergänzt werden. Was viel, viel mehr Aufwand ist.
Gruß
Klaus

isegrim_1

Hallo,

vielleicht hilft Dir das hier weiter:

In Deiner Abfrage "Entwurfsansicht" eine neue Spalte mit folgendem Inhalt:

Zahl_TempErfassung: Rechts([Temperatur_Messwert];4)/100

--> Temperatur_Messwert entspricht deinen Inhalten aus Deiner Tabelle "Temp_0900,Temp_1200,Temp_1830"
somit wird in der Abfrage ein  Wert generiert "9,00 / 12,00 / 18,30"

Anschließend -->

Menü: Start - "Summen" aktivieren
In der Datenblattansicht unterhalb der Werte "9,00 / 12,00 / 18,30" das Feld anwählen und "Mittelwert" auswählen

:-)