Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Berechnetes Feld in TQuery (https://www.delphipraxis.net/96507-berechnetes-feld-tquery.html)

HolgerCW 25. Jul 2007 16:52

Datenbank: ORACLE • Version: 9 • Zugriff über: DATABASE

Berechnetes Feld in TQuery
 
Hallo zusammen,

wie kann ich z.B. sowas:

Delphi-Quellcode:
if Query['DRUCKGERAETVORHANDEN'] = 1 then
begin
 Query['KEIN_DB'] := 'P';
end
else
begin
 Query['KEIN_DB'] := '';
end;
in eine Select - Abfrage umbauen und in einer TQuery implementieren ?

Gruss

Holger

P.S.: KEIN_DB -> zur Zeit ein berechnetes Feld
DRUCKGERAETVORHANDEN -> Spalte in der Datenbank

DeddyH 25. Jul 2007 17:08

Re: Berechnetes Feld in TQuery
 
Ungetestet:
SQL-Code:
SELECT Feld1,(CASE DRUCKGERATVORHANDEN WHEN 1 THEN 'P' ELSE '' END) AS KEIN_DB
FROM Tabelle
WHERE...

HolgerCW 26. Jul 2007 09:48

Re: Berechnetes Feld in TQuery
 
Funktioniert,

super ...

Danke ...

Gruss

Holger

HolgerCW 26. Jul 2007 10:17

Re: Berechnetes Feld in TQuery
 
Habe da jetzt mal was gebaut, das klappt aber nicht ganz. Er sagt mir fehlender Ausdruck:

Delphi-Quellcode:
(CASE SYSWVKISU.ZEITSCHEIBEN.LEIST WHEN > (SELECT SYSDBP.DBP_KATEGORIE.LEISTUNGSWERT FROM SYSDBP.DBP_KATEGORIE WHERE ID = 1) THEN 'P' ELSE '' END) AS LEI_PRUE
Gruss

Holger

DeddyH 26. Jul 2007 10:21

Re: Berechnetes Feld in TQuery
 
Bei Oracle weiß ich es nicht genau, aber das SQL-Case arbeitet AFAIK ähnlich dem Delphi-Case, d.h. Du musst zum Vergleichen Konstanten verwenden. Deshalb geht das so nicht. Ich überlege aber gerade, wie man das umformulieren könnte, ist aber (zumindest für mich) nicht ganz einfach.

DeddyH 26. Jul 2007 10:33

Re: Berechnetes Feld in TQuery
 
Versuch mal, ob das so geht:
SQL-Code:
(CASE SIGN(SYSWVKISU.ZEITSCHEIBEN.LEIST - (SELECT SYSDBP.DBP_KATEGORIE.LEISTUNGSWERT
FROM SYSDBP.DBP_KATEGORIE WHERE ID = 1)) WHEN 1 THEN 'P' ELSE '' END) AS LEI_PRUE

HolgerCW 26. Jul 2007 11:13

Re: Berechnetes Feld in TQuery
 
Hi,

das klappt. Super danke. Aber wie berechneest Du da die 1. Du ziehst die eine Leitung von der anderen ab. Und was macht das SIGN ?

Gruss

Holger

DeddyH 26. Jul 2007 11:25

Re: Berechnetes Feld in TQuery
 
SIGN ermittelt das Vorzeichen. Wenn das Ergebnis der Subtraktion positiv ist, kommt eben 1 heraus, d.h. erster Wert ist größer als 2 Wert. :zwinker:

HolgerCW 26. Jul 2007 13:54

Re: Berechnetes Feld in TQuery
 
Clever,

kannst Du mir noch verraten, wie Du zwei Spalten multiplizieren würdest um dann das Ergebnis anzuzeigen ?

Gruss

Holger

mkinzler 26. Jul 2007 13:56

Re: Berechnetes Feld in TQuery
 
Einfach
SQL-Code:
...<Spalte1> * <Spalte2> as Erg...


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