In beiden Subselects wird nur sum(spalte) abgefragt aber es steht ein GROUP BY T01.OLPRDC ganz am Ende (des Subselects). Auch wenn die Spalte T01.OLPRDC nicht angezeigt wird so wird dennoch dannach gruppiert und es können mehrere Summen zurück gegeben werden. Wenn du das GROUP BY einfach weg läßt, dann wird alles summiert und die Abfrage ist erstmal lauffähig.
Allerdings gruppierst du im Haupt-Select nach der selben Spalte daher vermute ich mal du willst nur die Summe aus Einträgen mit der selben Spalte zusammen ziehen. Das geht grundsätzlich, du kannst im Subselect Bezug nehmen auf Daten aus dem Hauptselect, also z.B. statt den GROUP BY im WHERE-Teil ergänzen:
[CODE]
AND T01.OLPRDC = hauptselect.OLPRDC[/CODE]
Hier kommt dann aber ein Problem zum tragen: Du verwendest im Hauptselect die selben Aliase wie in den Subselects, das wirst du abändern müssen:
[CODE]
SELECT
H01.OLPRDC,
sum(H01.OLITET) AS "Umsatz Aktion",
SUM(H01.OLOQTY) AS "Menge Aktion",
(
SELECT
sum(T01.OLITET)
FROM
FRI510AFWF.SROORSPL T01
JOIN FRI510AFWF.SRONAM T02 ON
T01.OLCUNO = T02.NANUM
JOIN FRI510AFWF.SRBSOH T04 ON
T01.OLORNO = T04.OHORNO
JOIN FRI510AF.SROPRG T06 ON
T01.OLPRDC = T06.PGPRDC
JOIN FRI510AF.SRBCTLD1 T03 ON
T01.OLORDT = T03.CTOTYP
WHERE
T04.OHODAT BETWEEN '20230305' AND '20230405' --Vergleichzeitraum
AND T01.OLSTAT <> 'D'
AND T01.OLIORD = 'N'
AND T01.OLORDT NOT IN ('IV', 'IS', 'BL', 'IG', 'V4', 'IU')
AND T02.NACOUN IN ('DE')
AND T04.OHHAND <> 'PSHOP'
AND T01.OLPRDC IN('38099478', '11046624')
AND T01.OLPRDC = H01.OLPRDC) AS "Umsatz Vergleich",
(
SELECT
SUM(T01.OLOQTY)
FROM
FRI510AFWF.SROORSPL T01
JOIN FRI510AFWF.SRONAM T02 ON
T01.OLCUNO = T02.NANUM
JOIN FRI510AFWF.SRBSOH T04 ON
T01.OLORNO = T04.OHORNO
JOIN FRI510AF.SROPRG T06 ON
T01.OLPRDC = T06.PGPRDC
JOIN FRI510AF.SRBCTLD1 T03 ON
T01.OLORDT = T03.CTOTYP
WHERE
T04.OHODAT BETWEEN '20230305' AND '20230405' --Vergleichzeitraum
AND T01.OLSTAT <> 'D'
AND T01.OLIORD = 'N'
AND T01.OLORDT NOT IN ('IV', 'IS', 'BL', 'IG', 'V4', 'IU')
AND T02.NACOUN IN ('DE')
AND T04.OHHAND <> 'PSHOP'
AND T01.OLPRDC IN('38099478', '11046624')
AND T01.OLPRDC = H01.OLPRDC) AS "Menge Vergleich"
FROM
FRI510AFWF.SROORSPL H01
JOIN FRI510AFWF.SRONAM H02 ON
H01.OLCUNO = H02.NANUM
JOIN FRI510AFWF.SRBSOH H04 ON
H01.OLORNO = H04.OHORNO
JOIN FRI510AF.SROPRG H06 ON
H01.OLPRDC = H06.PGPRDC
JOIN FRI510AF.SRBCTLD1 H03 ON
H01.OLORDT = H03.CTOTYP
WHERE
H04.OHODAT BETWEEN '20230105' AND '20230405' --Aktionszeitraum
AND H01.OLSTAT <> 'D'
AND H01.OLIORD = 'N'
AND H01.OLORDT NOT IN ('IV', 'IS', 'BL', 'IG', 'V4', 'IU')
AND H02.NACOUN IN ('DE')
AND H04.OHHAND <> 'PSHOP'
AND H01.OLPRDC IN('38099478', '11046624')
GROUP BY
H01.OLPRDC;[/CODE]
Auch wenn das Ergebnis dann eventuell stimmt hast du sehr viele, auf den ersten Blick redundante Joins. Ich denke da kann man anders vorgehen.