Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi SQL Berechnung (https://www.delphipraxis.net/32946-sql-berechnung.html)

Hansi 30. Okt 2004 09:51


SQL Berechnung
 
Hey,

Kann mir jemand sagen, wie ich z.B. einen Mittelwert aus einer Datenbank berechne (mit SQL)?
Der Datenbankinhalt sieht ungefähr so aus:

Name Datum Wert
A 1.10.2004 100
A 2.10.2004 80
...
A 30.10.2004 105
B 1.10.2004 50
...


Die Abfrage soll sein:

Berechne den Mittelwert für die letzten 5 Tage von A

Danke für Code im Voraus.

mikhal 30. Okt 2004 10:03

Re: SQL Berechnung
 
Nutze die SQl-Funktion AVG (=Average).
SQL-Code:
SELECT AVG(Wert) FROM <Tabelle> WHERE Datum BETWEEN <Startdatum> AND <Enddatum>
Grüße
Mikhal

Hansi 30. Okt 2004 10:08

Re: SQL Berechnung
 
Gib mir mal ein bischen Code zum Verständnis

Airblader 30. Okt 2004 10:10

Re: SQL Berechnung
 
Zitat:

Zitat von Hansi
Gib mir mal ein bischen Code zum Verständnis

Da ist doch ein "bisschen Code zum Verständnis" :gruebel:

Ansonsten...es gibt ein Zauberwort :wink:

Hansi 30. Okt 2004 10:22

Re: SQL Berechnung
 
Zitat:

Zitat von Airblader
Zitat:

Zitat von Hansi
Gib mir mal ein bischen Code zum Verständnis



Ansonsten...es gibt ein Zauberwort :wink:

Danke Gott, dass es Menschen wie Dich gibt; die Welt wäre sonst so schlecht.

Sharky 30. Okt 2004 10:23

Re: SQL Berechnung
 
Hai Hansi,

welche Datenbank verwendest Du denn?

Hansi 30. Okt 2004 10:26

Re: SQL Berechnung
 
Nur eine Paradox!

Sharky 30. Okt 2004 10:35

Re: SQL Berechnung
 
Versuche es mal so:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  mittelwert : Real;
begin
  ADOQuery1.Close;
  ADOQuery1.SQL.Text :=
    'SELECT TOP 5 AVG(wert) AS mittelwert FROM tabelle' + #10
  + 'WHERE name = :name' + #10
  + 'ORDER BY datum DESC';
  ADOQuery1.ParamCheck := True; // Parameter verarbeiten
  ADOQuery1.Parameters[0].Value := 'A'; // Nur Für Mittarbeiter "A";
  ADOQuery1.Open;
  mittelwert := ADOQuery1.Fields[0].AsFloat;
end;

Sharky 30. Okt 2004 10:45

Re: SQL Berechnung
 
Uff :wall:

Was ist natürlich schwachsinn was ich geschrieben habe!
Du darfst nicht mit TOP arbeiten sondern musst, so wie Airblaider geschrieben hat, den Bereich mit BETWEEN einschränken.


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:08 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