Zitat von
barnti:
Was ich möchte ist die beiden Gruppierungen zu einer zusammenzufassen:
SQL-Code:
SELECT PK.*, sum(PK.differenz)
FROM Partie P
INNER JOIN ...
INNER JOIN ...
INNER JOIN ...
where Differenz>0
Group By PK.Unterpartie_ID
union
SELECT PK.*, sum(differenz)
FROM Position Pos
INNER JOIN ...
INNER JOIN ...
WHERE A.Auftrag_ID<>6
Group By PK.Unterpartie_ID
Mit dem 'Union All' bekomme ich alle Datensätze der Selects. Das bringt daher keine Veränderung...
Mit einer
Unterabfrage (also ein Select auf die bisherige Datenmenge) müsste das gehen:
SQL-Code:
SELECT gruppierungsfeld, SUM(summenfeld) FROM
(
SELECT [feldliste]
FROM ...
GROUP BY ...
UNION ALL
SELECT [feldliste]
FROM ...
GROUP BY ...
)
GROUP BY gruppierungsfeld
Es ist zu beachten: in der [Feldliste] dürfen nur Felder auftauchen, die bei GROUP BY aufgeführt
werden (In deinem Fall Unterpartie_ID) und ausserdem dürfen Aggregatfunktionen (SUM, MIN, MAX, COUNT)
verwendet werden.
SELECT * FROM Tabelle GROUP BY Feld1 ist falsch !