AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi SQL Mittelwert berechnen

SQL Mittelwert berechnen

Ein Thema von Hansi · begonnen am 2. Nov 2004 · letzter Beitrag vom 4. Nov 2004
Antwort Antwort
Seite 1 von 2  1 2   
Hansi

Registriert seit: 8. Okt 2004
271 Beiträge
 
#1

SQL Mittelwert berechnen

  Alt 2. Nov 2004, 13:30
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
  Mit Zitat antworten Zitat
der-C

Registriert seit: 29. Okt 2004
68 Beiträge
 
Delphi 6 Professional
 
#2

Re: SQL Mittelwert berechnen

  Alt 2. Nov 2004, 13:34
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
  Mit Zitat antworten Zitat
Benutzerbild von Jasocul
Jasocul

Registriert seit: 22. Sep 2004
Ort: Delmenhorst
1.354 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: SQL Mittelwert berechnen

  Alt 2. Nov 2004, 13:41
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
Peter
  Mit Zitat antworten Zitat
Hansi

Registriert seit: 8. Okt 2004
271 Beiträge
 
#4

Re: SQL Mittelwert berechnen

  Alt 2. Nov 2004, 13:41
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.)
...
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#5

Re: SQL Mittelwert berechnen

  Alt 2. Nov 2004, 14:44
Hallo Hansi,

probiers mal ungefähr so:
SELECT AVG(datum) FROM tabelle WHERE datum >= :datum_ab In Delphi:
Delphi-Quellcode:
qry.sql.text := 'SELECT AVG(datum) FROM tabelle WHERE datum >= :datum_ab' ;
qry.ParamByName(datum_ab).AsDateTime := date - 5 ;
qry.open ;
  Mit Zitat antworten Zitat
Hansi

Registriert seit: 8. Okt 2004
271 Beiträge
 
#6

Re: SQL Mittelwert berechnen

  Alt 2. Nov 2004, 15:47
Bitte postet mehr Code...

Wie kann ich die Mittelwerte in einem TDBGrid ausgeben?

Vielen Dank für Code!
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#7

Re: SQL Mittelwert berechnen

  Alt 2. Nov 2004, 15:57
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:
select Datum, avg(X) as Mittelwert
from Tabelle
group by Datum
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.

Gruß,
Tom
  Mit Zitat antworten Zitat
Hansi

Registriert seit: 8. Okt 2004
271 Beiträge
 
#8

Re: SQL Mittelwert berechnen

  Alt 2. Nov 2004, 16:08
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
...
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#9

Re: SQL Mittelwert berechnen

  Alt 2. Nov 2004, 16:29
Sorry, cih raffs nicht
Was ist Anzahl. Welche Datensätze sind denn für die Mittelwertbildung betroffen. Das ist das entscheidende Kriterium was du brauchst.
  Mit Zitat antworten Zitat
der-C

Registriert seit: 29. Okt 2004
68 Beiträge
 
Delphi 6 Professional
 
#10

Re: SQL Mittelwert berechnen

  Alt 2. Nov 2004, 16:44
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))
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:38 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz