AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Im Select erstellte Spalte weiter verwenden ?
Thema durchsuchen
Ansicht
Themen-Optionen

Im Select erstellte Spalte weiter verwenden ?

Ein Thema von HolgerCW · begonnen am 30. Jul 2007 · letzter Beitrag vom 30. Jul 2007
Antwort Antwort
HolgerCW

Registriert seit: 28. Nov 2006
Ort: Marl
1.207 Beiträge
 
Delphi XE7 Enterprise
 
#1

Im Select erstellte Spalte weiter verwenden ?

  Alt 30. Jul 2007, 11:17
Datenbank: ORACLE • Version: 9 • Zugriff über: DATABASE
Hallo zusammen,

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

Beispiel:

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
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Im Select erstellte Spalte weiter verwenden ?

  Alt 30. Jul 2007, 11:32
Es scheint wohl nicht zu gehen, du musst also

SELECT (SPALTE A * SPALTE B) AS ERGEBNIS, (SPALTE A * SPALTE B * SPALTE C) AS ENDERGEBNIS FROM TABELLE; nehmen.
Markus Kinzler
  Mit Zitat antworten Zitat
HolgerCW

Registriert seit: 28. Nov 2006
Ort: Marl
1.207 Beiträge
 
Delphi XE7 Enterprise
 
#3

Re: Im Select erstellte Spalte weiter verwenden ?

  Alt 30. Jul 2007, 11:36
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
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Im Select erstellte Spalte weiter verwenden ?

  Alt 30. Jul 2007, 11:38
du könntest es per Derived table lösen.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.641 Beiträge
 
#5

Re: Im Select erstellte Spalte weiter verwenden ?

  Alt 30. Jul 2007, 11:42
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
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.
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
HolgerCW

Registriert seit: 28. Nov 2006
Ort: Marl
1.207 Beiträge
 
Delphi XE7 Enterprise
 
#6

Re: Im Select erstellte Spalte weiter verwenden ?

  Alt 30. Jul 2007, 12:50
Hi,

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

2.  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
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: Im Select erstellte Spalte weiter verwenden ?

  Alt 30. Jul 2007, 23:50
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
  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:11 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