SQL aus einer Abfrage heraus eine Differenz bilden
Ich habe eine Abfrage erstellt, wo die erste Spalte die Kostenstelle, die zweite Grundgebühr ist, dann D1, D2, E-Plus, O2, Gesamt
Nun will ich noch eine Spalte ergeänzen. Und zwar die Festnetzkosten.
Diese ergeben sich dann logischerweise aus Gesamt - D1-D2-O2-E-Plus=Festnetz.
Wie kann ich einen Rechenausdruck mit in die selbe Abfrage bringen???
Geht so etwas überhgaupt???
Danke
Diese ergeben sich dann logischerweise aus Gesamt - D1-D2-O2-E-Plus=Festnetz.
Wie kann ich einen Rechenausdruck mit in die selbe Abfrage bringen???
Geht so etwas überhgaupt???
Danke
Please also mark the comments that contributed to the solution of the article
Content-Key: 137732
Url: https://administrator.de/contentid/137732
Printed on: April 25, 2024 at 17:04 o'clock
4 Comments
Latest comment
Außerdem fügt es automatisch bei der HVING Klausel dieses . AS [%$###@_Alias] ein, welches davor noch nicht da war.
... das ist OK so. Die Unterabfragen benötigen dieses Alias damit man in der Hauptabfrage erkennen kann welcher Wert woher kommt.ist das M$ Access ?
SELECT
D1,
D2,
E_Plus,
O2,
Gesamt-D1-D2-E_Plus-O2-Grundgebühr AS Festnetz,
Gesamt
FROM
[
SELECT
Januar_2010.Kostenstelle,
Sum(IIf(InStr([Volumen],"---")>0,[Anteil_Euro],0)) AS Grundgebühr,
Sum(IIf(InStr([leistungen],"T-Mobile")>0,[Anteil_Euro],0)) AS D1,
Sum(IIf(InStr([leistungen],"Vodafone")>0,[Anteil_Euro],0)) AS D2,
Sum(IIf(InStr([leistungen],"E-Plus")>0,[Anteil_Euro],0)) AS E_Plus,
Sum(IIf(InStr([leistungen],"O2")>0,[Anteil_Euro],0)) AS O2,
Sum(Januar_2010.Anteil_Euro) AS Gesamt
FROM Januar_2010
GROUP BY Januar_2010.Kostenstelle
HAVING (((Januar_2010.Kostenstelle)=[Kostenstelle:]))
]. AS [%$##@_Alias];
Das sollte doch auch gehen:
SELECT
Januar_2010.Kostenstelle,
Sum(IIf(InStr([Volumen],"---")>0,[Anteil_Euro],0)) AS Grundgebühr,
Sum(IIf(InStr([leistungen],"T-Mobile")>0,[Anteil_Euro],0)) AS D1,
Sum(IIf(InStr([leistungen],"Vodafone")>0,[Anteil_Euro],0)) AS D2,
Sum(IIf(InStr([leistungen],"E-Plus")>0,[Anteil_Euro],0)) AS E_Plus,
Sum(IIf(InStr([leistungen],"O2")>0,[Anteil_Euro],0)) AS O2,
Sum(Januar_2010.Anteil_Euro) AS Gesamt,
Sum(Januar_2010.Anteil_Euro) -
Sum(IIf(InStr([Volumen],"---")>0,[Anteil_Euro],0)) -
Sum(IIf(InStr([leistungen],"T-Mobile")>0,[Anteil_Euro],0)) -
Sum(IIf(InStr([leistungen],"Vodafone")>0,[Anteil_Euro],0)) -
Sum(IIf(InStr([leistungen],"E-Plus")>0,[Anteil_Euro],0)) -
Sum(IIf(InStr([leistungen],"O2")>0,[Anteil_Euro],0)) AS Festnetz
FROM Januar_2010
GROUP BY Januar_2010.Kostenstelle
HAVING (((Januar_2010.Kostenstelle)=[Kostenstelle:]))