AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi SQL-Abfrage mit berechnetem Feld
Thema durchsuchen
Ansicht
Themen-Optionen

SQL-Abfrage mit berechnetem Feld

Ein Thema von matt11 · begonnen am 14. Okt 2004 · letzter Beitrag vom 14. Okt 2004
Antwort Antwort
matt11

Registriert seit: 14. Okt 2004
5 Beiträge
 
#1

SQL-Abfrage mit berechnetem Feld

  Alt 14. Okt 2004, 14:35
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');
  Mit Zitat antworten Zitat
Benutzerbild von maxk
maxk

Registriert seit: 19. Sep 2004
Ort: Berlin
57 Beiträge
 
Delphi 6 Personal
 
#2

Re: SQL-Abfrage mit berechnetem Feld

  Alt 14. Okt 2004, 14:46
Hi und Willkommen in der ,
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
Ein im Mittelpunkt stehender Kunde steht im Weg.
  Mit Zitat antworten Zitat
matt11

Registriert seit: 14. Okt 2004
5 Beiträge
 
#3

Re: SQL-Abfrage mit berechnetem Feld

  Alt 14. Okt 2004, 15:17
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

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

Query1.SQL.Add('FROM Table1'); versucht Delphi eine Datei Table1.db zu öffnen anstatt auf die Komponente Table1 zuzugreifen.
  Mit Zitat antworten Zitat
MarkusB

Registriert seit: 3. Apr 2004
Ort: Hamburg
105 Beiträge
 
#4

Re: SQL-Abfrage mit berechnetem Feld

  Alt 14. Okt 2004, 17:51
Hi matt11!

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
  Mit Zitat antworten Zitat
Benutzerbild von maxk
maxk

Registriert seit: 19. Sep 2004
Ort: Berlin
57 Beiträge
 
Delphi 6 Personal
 
#5

Re: SQL-Abfrage mit berechnetem Feld

  Alt 14. Okt 2004, 18:11
Dann würde ich aber "Counter*Quantity AS Profit" benutzen
Ein im Mittelpunkt stehender Kunde steht im Weg.
  Mit Zitat antworten Zitat
Antwort Antwort


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 15:49 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