Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi SQL-Abfrage mit berechnetem Feld (https://www.delphipraxis.net/31827-sql-abfrage-mit-berechnetem-feld.html)

matt11 14. Okt 2004 14:35


SQL-Abfrage mit berechnetem Feld
 
Ich möchte eine SQL-Abfrage generieren in der Form

Delphi-Quellcode:
Query1.SQL.Add('SELECT Number, Name, Counter, Quantity, Profit');
Query1.SQL.Add('FROM "Report.db"');
wobei nur die Felder Number, Name, Counter und Quantity in der Tabelle definiert sind. Profit ist ein berechnetes Feld aus der mit Report.db verknüpften Komponente Table1.

Wie kriege ich die Abfrage dazu, die Daten aus Table1 statt aus Report.db zu lesen?

In dieser Art funktioniert es leider nicht:

Delphi-Quellcode:
Query1.SQL.Add('SELECT Number, Name, Counter, Quantity, Profit');
Query1.SQL.Add('FROM Table1');

maxk 14. Okt 2004 14:46

Re: SQL-Abfrage mit berechnetem Feld
 
Hi und Willkommen in der :dp:,
leider verstehe ich deine Frage nicht so richtig: Willst du mit einer Abfrage die Werte aus der Tabelle Table1 holen und den Wert Profit aus einer anderen Tabelle, oder wird der Profit mit Hilfe der Daten auf Table1 berechnet und vorallem wie? Wenn du Tabellen verknüpfen willst, schau dir mal den SQL "Befehl" INNER JOIN an. Wenn du nur die Daten auslesen willst, müsste ein "SELECT Number, Name, Counter, Quantity FROM Table1" reichen - dann hast du natürlich den Profit nicht, da dieser ja erst berechnet werden müsste.

Gruß,
maxk

matt11 14. Okt 2004 15:17

Re: SQL-Abfrage mit berechnetem Feld
 
Mal angenommen, der Profit wird mit Hilfe der Daten aus Table1 berechnet:

Delphi-Quellcode:
procedure TREPForm.Table1CalcFields(DataSet: TDataSet);
begin
  Table1Profit.Value   := Table1Counter.Value * Table1Quantity.Value;
end;
Dann möchte ich diesen berechneten Wert in der SQL-Abfrage nutzen.

Bei

Delphi-Quellcode:
Query1.SQL.Add('FROM "Report.db"');
findet er ihn aber nicht, was verständlich ist, da er ja in der Datei Report.db nicht enthalten ist.

Und mit

Delphi-Quellcode:
Query1.SQL.Add('FROM Table1');
versucht Delphi eine Datei Table1.db zu öffnen anstatt auf die Komponente Table1 zuzugreifen.

MarkusB 14. Okt 2004 17:51

Re: SQL-Abfrage mit berechnetem Feld
 
Hi matt11!

Zitat:

Zitat von matt11
Mal angenommen, der Profit wird mit Hilfe der Daten aus Table1 berechnet:

Delphi-Quellcode:
...
Table1Profit.Value   := Table1Counter.Value * Table1Quantity.Value;
...
...

warum nicht gleich so:

Delphi-Quellcode:
...
Query1.SQL.Add('SELECT Number, Name, Counter, Quantity, Counter*Quantity');
Query1.SQL.Add('FROM "Report.db"');
...
???

Viele Grüße
Markus
:gruebel:

maxk 14. Okt 2004 18:11

Re: SQL-Abfrage mit berechnetem Feld
 
Dann würde ich aber "Counter*Quantity AS Profit" benutzen :D


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