Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Im Select erstellte Spalte weiter verwenden ? (https://www.delphipraxis.net/96738-im-select-erstellte-spalte-weiter-verwenden.html)

HolgerCW 30. Jul 2007 10:17

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

Im Select erstellte Spalte weiter verwenden ?
 
Hallo zusammen,

wie kann ich eine im Select-Statement erstellte virtuelle Spalte, im gleichen Select-Statement direkt wieder abfragen ?

Beispiel:

Delphi-Quellcode:
SELECT (SPALTE A * SPALTE B) AS ERGEBNIS, (ERGEBNIS * SPALTE C) AS ENDERGEBNIS FROM TABELLE
Bei mir kommt immer wenn ich die virtuelle Spalte 'ERGEBNIS' weiter verwenden möchte der Fehler 'Ausdruck fehlt'

Gruss

Holger

mkinzler 30. Jul 2007 10:32

Re: Im Select erstellte Spalte weiter verwenden ?
 
Es scheint wohl nicht zu gehen, du musst also

SQL-Code:
SELECT (SPALTE A * SPALTE B) AS ERGEBNIS, (SPALTE A * SPALTE B * SPALTE C) AS ENDERGEBNIS FROM TABELLE;
nehmen.

HolgerCW 30. Jul 2007 10:36

Re: Im Select erstellte Spalte weiter verwenden ?
 
Hi,

ich brauche dieses Ergebnis nämlich an vielen Stellen in der SQL - Abfrage. Muss dann also jedesmal die komplette Formel nochmal ausschreiben ? und die Formel ist ganz schön gross, ncihgt so klein wie in dem Beispiel ...

Naja, da muss ich dann wohl durch.

Danke und Gruss

Holger

mkinzler 30. Jul 2007 10:38

Re: Im Select erstellte Spalte weiter verwenden ?
 
du könntest es per Derived table lösen.

Phoenix 30. Jul 2007 10:42

Re: Im Select erstellte Spalte weiter verwenden ?
 
Zitat:

Zitat von HolgerCW
und die Formel ist ganz schön gross, ncihgt so klein wie in dem Beispiel ...

Naja, da muss ich dann wohl durch.

Dann mach aus der Formel doch eine Funktion. Dann machst Du
SQL-Code:
SELECT func1(SPALTE_1, SPALTE_2) AS Ergebnis1, func2(SPALTE_1, SPALTE_2, SPALTE_3) as Ergebnis2 FROM table
Macht die Sache lesbarer, wartbarer und wahrscheinlich sogar schneller.

HolgerCW 30. Jul 2007 11:50

Re: Im Select erstellte Spalte weiter verwenden ?
 
Hi,

1. was ist ein Derived Table und wie wende ich das an ?

2.
Delphi-Quellcode:
 SELECT func1(SPALTE_1, SPALTE_2) AS Ergebnis1, func2(SPALTE_1, SPALTE_2, SPALTE_3) as Ergebnis2 FROM table
- Kann ich denn hierbei ERGEBNIS1 in FUNC2 verwenden ?

Gruss

Holger

omata 30. Jul 2007 22:50

Re: Im Select erstellte Spalte weiter verwenden ?
 
Hallo HolgerCW,

vielleicht so...
SQL-Code:
SELECT spalte_a, spalte_b, spalte_c, ergebnis * spalte_c) AS endergebnis
FROM (SELECT spalte_a, spalte_b, spalte_c,
             spalte_a * spalte_b AS ergebnis
      FROM tabelle) x
Guss
Thorsten


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:48 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz