![]() |
SQL Mittelwert berechnen
Hey,
ich möchte den Durchschnitt von Werten in einer Datenbank berechnen. Dabei sollen von einem "Startdatum" aus der Mittelwert der letzten x(Anzahl)-Werte berechnet werden. Eingabe über Edit-Felder: - Datum (z.B. 10.10.2004) - Anzahl (z.B. 9) Ausgabe z.B. in DBGrid: 10.10.2004 5,75 09.10.2004 5,84 Wie bekomme ich das mit SQL hin? P.S. benütze zum Testen eine Paradox-Tabelle |
Re: SQL Mittelwert berechnen
SELECT AVG(spalte_anzahl) FROM tab WHERE spalte_datum = "irgenteindatum";
//Edit ich sehe grad, statt WHERE bla... ist es wohl eher GROUP BY spalte_datum |
Re: SQL Mittelwert berechnen
Das group by brauchst du nur, wenn du den Durchschnitt über einen Tag haben möchtest. Deine erste Lösung müsste also schon stimmen
|
Re: SQL Mittelwert berechnen
Der Mittelwert soll aber nicht über die ganze Spalte berechnet werden, sondern er soll nur aus den letzten x-Datensätze den Durchschnitt berechnen. Z.B. vom 10.10.2004 die letzten 5 Tage.
Also... 10.10.2004 (Durchschnitt vom 6.10. bis 10.10.) 09.10.2004 (Durchscnitt vom 5.10. bis 9.10.) ... |
Re: SQL Mittelwert berechnen
Hallo Hansi,
probiers mal ungefähr so:
SQL-Code:
In Delphi:
SELECT AVG(datum) FROM tabelle WHERE datum >= :datum_ab
Delphi-Quellcode:
qry.sql.text := 'SELECT AVG(datum) FROM tabelle WHERE datum >= :datum_ab' ;
qry.ParamByName(datum_ab).AsDateTime := date - 5 ; qry.open ; |
Re: SQL Mittelwert berechnen
Bitte postet mehr Code...
Wie kann ich die Mittelwerte in einem TDBGrid ausgeben? Vielen Dank für Code! |
Re: SQL Mittelwert berechnen
Dann stelle bitte auch deine Fragen genauer... Als wichtige Info fehlt z.B., woher du die Anzahl der Werte nimmst. Versteh ich dich richtig dass du 1000 Records hast, die alle eine Datumspalte (Datum date) und eine Wertspalte (X float) besitzen, und nun willst du eine Liste der gemittelten X-Werte gruppiert für jeden Tag?
Dann wär das z.B. dein SQL Befehl:
SQL-Code:
Mehr ist da nicht. Schmeiss noch eine TDatasource Kompo auf dein Form, verbinde diese mit deiner Query. Dann noch ein DBGrid welches du mit deine Datasource verknüpfst. Jetzt brauchst du deine Query nur noch öffnen, et voilà... DA IST NICHT MEHR CODE.
select Datum, avg(X) as Mittelwert
from Tabelle group by Datum Gruß, Tom |
Re: SQL Mittelwert berechnen
So dann nochmal ganz genau:
Ich habe eine Tabelle(Ergebnisse.db); deren Inhalt ungefähr so aussieht: Datum Wert ... 08.10.2004 70 09.10.2004 90 10.10.2004 100 ... Nun soll über zwei Edit-Felder einmal das Datum und das andere Mal die Anzahl eingelesen werden. Bsp: Datum: 10.10.2004 Anzahl: 2 Ergebnis: ... 09.10.2004 80 10.10.2004 95 ... |
Re: SQL Mittelwert berechnen
Sorry, cih raffs nicht :wall:
Was ist Anzahl. Welche Datensätze sind denn für die Mittelwertbildung betroffen. Das ist das entscheidende Kriterium was du brauchst. |
Re: SQL Mittelwert berechnen
Wert ist für den Mittelwert
Anzahl ist die Anzahl der zurückliegenden Tage bei denen er den Durchschnittswert von "Wert" braucht Date Wert 20.10 70 21.10 90 22.10 100 Anzahl=2, Datum = 22.10 --> von den Tagen 22.10 und 21.10 (2 Tage) braucht er den Mittelwert von "Wert" (hier 95) also ungefähr SELECT AVG(Wert) From tab WHERE (datum < startdatum) AND (datum > (startdatum-Anzahl_tage)) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:24 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-2025 by Thomas Breitkreuz