Announcement

Collapse
No announcement yet.

Definierte Variablen weiterverwenden?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Definierte Variablen weiterverwenden?

    Hallo,

    habe Probleme mit folgender Abfrage:
    Select A.Stueckzahl * A.Preis As Umsatz,
    Umsatz - A.Kosten As Ertrag
    From
    Tabelle A

    Leider kann ich hier nicht auf die definierte Variable Umsatz zugreifen. Umgehen kann man dies durch einen weiteren Select:
    Select B.Umsatz - B.Kosten As Ertrag
    From (
    Select A.Stueckzahl * A.Preis As Umsatz,
    From Tabelle A
    ) B

    Was allerdings bei verschachtelter Verwendung von Variablen ziemlich lästig ist und auch schnell die Übersichtlichkeit verloren geht.

    Gibt es denn eine Möglichkeit innerhalb eines Selects auf die dort definierten Variablen zuzugreifen?

    Vielen Dank schonmal.

    Gruß

  • #2
    Hallo,

    schreib doch einfach:

    Select A.Stueckzahl * A.Preis As Umsatz,
    A.Stueckzahl * A.Preis - A.Kosten As Ertrag
    From
    Tabelle A

    Dann bist Du alles los. Viel langsamer wird das auch nicht.

    Gruß frauwue
    docendo discimus

    Comment


    • #3
      Im Prinzip hast du recht, wenn die Struktur so einfach ist. In meinem Fall verwende ich aber umfangreichere Case Ausdrücke, deren Ergebnisse hinterher zB multipliziert werden müssen.
      Dann ist diese einfache Lösung praktisch nicht mehr umsetzbar.

      Comment


      • #4
        Hallo,

        dann gibt es immer noch den Weg über eine View die alle per "umfangreichem Case Ausdruck" erstellten Felder enthält. In deinem Select verwendest du dann die View statt der Tabelle und kannst dort einfach die "Basiswerte" und deine weiteren Berechnungen implementieren.
        [highlight=sql]
        create or replace view tabA_viw as
        Select A.Kosten, A.Stueckzahl * A.Preis As Umsatz
        From
        Tabelle A;

        select A.Umsatz, A.Umsatz - A.Kosten As Ertrag
        from tabA_viw A
        [/highlight]

        Gruß Falk
        Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

        Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

        Comment

        Working...
        X