Announcement

Collapse
No announcement yet.

Zugriff auf Berechnete Felder

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

  • Zugriff auf Berechnete Felder

    Hallo,
    <br>
    <br>wieso funktioniert das mit dem BruttoBetrag nicht in dem folgenden SQL String?
    <br>Select Rechnungen.ID, (Select Sum(x.Preis) From RechnungsPositionen x where x.RechID = Rechnungen.ID) as RechnungsSumme, (RechnungsSumme * 1.16) as BruttoBetrag From Rechnungen
    <br>
    <br>Aber folgendes funktioniert:
    <br>Select Rechnungen.ID, (Select Sum(x.Preis) From RechnungsPositionen x where x.RechID = Rechnungen.ID) as RechnungsSumme, ((Select Sum(x.Preis) From RechnungsPositionen x where x.RechID = Rechnungen.ID) * 1.16) as BruttoBetrag From Rechnungen
    <br>
    <br>Ich würde nur gerne nicht das Subselect doppelt ausführen (Wird das überhaupt doppelt ausgeführt? Oder ist er Server so "schlau" und merkt das dieses Select schon mal ausgeführt wurde?) .
    <br>
    <br>Hat da jemand eine Idee?
    <br>
    <br>Danke!
    <br>mfg
    <br>ps

  • #2
    Die erste Query wird deshalb nicht gehen, weil zum Zeitpunkt der Verwendung der benammsten Spalte RechnungsSumme eigentlich noch nicht so bekannt ist. Mir würden 2 Lösungen einfallen:

    1.Lösung:<br>
    CREATE VIEW V_Rechnung AS Select Rechnungen.ID, (Select Sum(x.Preis) as RechnungsSumme From RechnungsPositionen x where x.RechID = Rechnungen.ID From Rechnungen

    SELECT Id, RechnungsPositionen, Rechnungspositionen * 1.16 as BruttoBetrag FROM V_Rechnungen

    2.Lösung:<br>

    Select Rechnungen.ID, Sum(x.Preis) as Rechnungssumme, Sum(x.Preis) * 1.16 as Bruttobetrag From Rechnungen INNER JOIN RechnungsPositionen x ON Rechnungen.ID = x.RechID group by Rechnungen.I

    Comment


    • #3
      Danke!
      <br>
      <br>mfg
      <br>p

      Comment

      Working...
      X