Delphi-PRAXiS
Seite 1 von 2  1 2      

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

Hansi 21. Dez 2004 13:12


SQL Berechnung
 
Hey,

Über folgende Code öffne ich eine SQL-Abfrage.

Delphi-Quellcode:
...
Query1.Active:=False;
Query1.DatabaseName:='.\DB\';
Query1.SQL.Clear;
Query1.SQL.Add('SELECT Datum, Wert FROM Datenbank WHERE Datum BETWEEN :von AND :bis ORDER BY Datum');
Query1.ParamByName('von').AsDate:=StrToDate(Edit1.Text);
Query1.ParamByName('bis').AsDate:=StrToDate(Edit2.Text);
Query1.Open;
...
1. Nun möchte ich auf einen Wert bei einem bestimmten Datum zugreifen. Wie funktioniert dies?

2. Wie kann ich die Summe der Spalte Wert berechnen?

Stevie 21. Dez 2004 13:15

Re: SQL Berechnung
 
Hi Hansi,

1. Es gibt die Methode Locate von TDataSet, aber du musst schauen, ob sie implementiert ist und funktioniert!
2. Entweder durch die Datenmenge iterieren und summieren oder gleich ne eigene Sql-Abfrage.

MfG
Stevie

Hansi 21. Dez 2004 13:19

Re: SQL Berechnung
 
Kannst Du mir bitte für beide Punkte ein Beispiel geben?

Stevie 21. Dez 2004 13:27

Re: SQL Berechnung
 
1.
Delphi-Quellcode:
begin
  if Query.Locate('DATUM', Datum, []) then
    {...}
end;
2.
Delphi-Quellcode:
begin
  Query.First;
  Summe := 0;
  while not Query.Eof do
  begin
    Summe := Summe + Query.FieldValues['WERT'];
    Query.Next;
  end;
end;

Hansi 21. Dez 2004 13:35

Re: SQL Berechnung
 
Super! Vielen Dank!

kann ich das auch so machen?
Delphi-Quellcode:
Query1.SQL.Add('SELECT sum(Wert) FROM Datenbank WHERE Datum BETWEEN :von AND :bis');
Bei mir kommt nämlich die Fehlermeldung: Keine Übereinstimung der Typen im Ausdruck. Was ist falsch?

Ist Deine Variante der Summe schneller als mit SQL?

Stevie 21. Dez 2004 13:38

Re: SQL Berechnung
 
Ich denke, SQL wird schneller sein!
Von welchem Datentyp ist den Wert?

Hansi 21. Dez 2004 13:41

Re: SQL Berechnung
 
Währung!


Edit: In Datenbank war String nicht Währung eingestellt! :wall:

Hansi 21. Dez 2004 13:54

Re: SQL Berechnung
 
Wie bekomme ich die "SQL-Summe" mit INSERT INTO in die Datenbank, und zwar an eine ganz bestimmte Stelle(wo Datum =... ist!)?

Stevie 21. Dez 2004 13:55

Re: SQL Berechnung
 
Zitat:

Zitat von Hansi
Wie bekomme ich die "SQL-Summe" mit INSERT INTO in die Datenbank, und zwar an eine ganz bestimmte Stelle(wo Datum =... ist!)?

Was willst du genau machen?

Hansi 21. Dez 2004 14:01

Re: SQL Berechnung
 
Summe von Wert in einem bestimmten Zeitraum

Bsp:
Summe von Wert zwischen dem 1.10. bis 1.11.
Die Summe in DB an die Stelle 1.11. schreiben


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:11 Uhr.
Seite 1 von 2  1 2      

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