Announcement

Collapse
No announcement yet.

Ergebnis einer tabelle zwischenspeichern

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

  • Ergebnis einer tabelle zwischenspeichern

    Hallo zusammen,

    folgende funktionsfähige Abfrage sei gegeben:
    Code:
    SELECT I_CDF / (SELECT sum([Dauer (h)]) FROM vw_Anhang_B) * 
                  ((SELECT sum([Dauer (h)]) FROM vw_Anhang_B)  - (SELECT [Dauer (h)] FROM vw_Anhang_B WHERE Konfigurationen = 'JHR')) AS [I-ICumCDP_Baseline],
           E_CDF /(SELECT sum([Dauer (h)]) FROM vw_Anhang_B) * 
                  ((SELECT sum([Dauer (h)]) FROM vw_Anhang_B)  - (SELECT [Dauer (h)] FROM vw_Anhang_B WHERE Konfigurationen = 'JHR')) AS [E-ICumCDP_Baseline],
           A_CDF /(SELECT sum([Dauer (h)]) FROM vw_Anhang_B) * 
                  ((SELECT sum([Dauer (h)]) FROM vw_Anhang_B)  - (SELECT [Dauer (h)] FROM vw_Anhang_B WHERE Konfigurationen = 'JHR')) AS [A-ICumCDP_Baseline]
    FROM Kombinationen
    WHERE id = 0;
    Nun taucht in dieser Abfrage mehrfach immer die gleiche Unterabfrage auf, z.B.
    Code:
    SELECT sum([Dauer (h)]) FROM vw_Anhang_B
    Lässt sich eigentlich das Ergebnis dieser Unterabfrage speichern, sodass der Wert später einfach verwendet werden kann, ohne die Unterabfrage jedes mal eingeben zu müssen. Anbei nicht funktionierender Pseudocode:
    Code:
    SELECT (A = SELECT sum([Dauer (h)]) FROM vw_Anhang_B),
           (B = SELECT [Dauer (h)] FROM vw_Anhang_B WHERE Konfigurationen = 'JHR'),
           I_CDF / A * (A - B) AS [I-ICumCDP_Baseline],
    .....
    Falls obige Frage mit JA beantwortet werden kann, würde ich mich über eine Lösung in Pseudocode freuen.
    Gruss,

    Jean

  • #2
    Du suchst vielleicht nach with clause.
    Das wird aber nicht von jeder DB unterstützt. Ist im SQL standard ab 1999 definiert.
    Gruß, defo

    Comment

    Working...
    X