Thema: Delphi Gruppieren über Union

Einzelnen Beitrag anzeigen

shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#6

Re: Gruppieren über Union

  Alt 19. Mai 2004, 12:41
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 !
Andreas
  Mit Zitat antworten Zitat