Summe in Unterabfrage

JohnWorks

Benutzer
Beiträge
5
Hallo Zusammen,

in meiner Abfrage bekomme ich die Auftragswerte je Job raus. Bitte keine Diskussionen warum Preis1-6 in Spalten gepflegt werden, ist leider vorgeben.

Code:
        SELECT CASE  
            WHEN Variante = 1 THEN  Bestellmenge * Preis1
            WHEN Variante = 2 THEN  Bestellmenge * Preis2
            WHEN Variante = 3 THEN  Bestellmenge * Preis3
            WHEN Variante = 4 THEN  Bestellmenge * Preis4
            WHEN Variante = 5 THEN  Bestellmenge * Preis5
            WHEN Variante = 6 THEN  Bestellmenge * Preis6
        END AS Auftragswert
        ,nr_Kunde
        FROM Jobs

Nun möchte ich jedoch die Auftragswarte je Kunde erfassen. Wenn ich nun um das CASE ein SUM() lege, kommt die Fehlermeldung "Eine Aggregatfunktion kann auf einem Ausdruck, der ein Aggregat oder eine Unterabfrage enthält, nicht ausgeführt werden.".

Hat noch jemand eine Idee, wie ich Sinnvoll (ohne erstellen von Views/Funktionen) den Auftragswert je Kunde ermitteln kann?

Lieben Dank,
John
 
Werbung:
select nr_kunde, sum(auftragswert from (insert the query von oben hier) bla group by nr_kunde;

Vielen Dank für den Tipp. Jedoch kommt hier nichts sinnvolles raus:

Code:
SELECT nr_Kunde,

sum(auftragswert FROM (

SELECT CASE
WHEN Variante = 1 THEN Bestellmenge * Preis1
WHEN Variante = 2 THEN Bestellmenge * Preis2
WHEN Variante = 3 THEN Bestellmenge * Preis3
WHEN Variante = 4 THEN Bestellmenge * Preis4
WHEN Variante = 5 THEN Bestellmenge * Preis5
WHEN Variante = 6 THEN Bestellmenge * Preis6
END AS Auftragswert
FROM Jobs ) AS Auftrgswert

FROM Jobs
GROUP BY nr_Kunde

Sobald ich versuche ein SUM() über eine Unterabfrage bilde: "Eine Aggregatfunktion kann auf einem Ausdruck, der ein Aggregat oder eine Unterabfrage enthält, nicht ausgeführt werden."
 
Werbung:
Gelöst. Vielen Dank!

Code:
SELECT nr_Kunde,

sum(job.auftragswert) FROM (

SELECT CASE
WHEN Variante = 1 THEN Bestellmenge * Preis1
WHEN Variante = 2 THEN Bestellmenge * Preis2
WHEN Variante = 3 THEN Bestellmenge * Preis3
WHEN Variante = 4 THEN Bestellmenge * Preis4
WHEN Variante = 5 THEN Bestellmenge * Preis5
WHEN Variante = 6 THEN Bestellmenge * Preis6
END AS Auftragswert
FROM Jobs ) AS Auftragswert)

GROUP BY nr_Kunde
 
Zurück
Oben