Gruppensumme

Liebe ExpertInnen,

es geht um ein Turnier: Für jede Mannschaft im Turnier soll ausgegeben werden, wieviele Tore sie insgesamt geschossen hat. Ist ja einfach, dachte ich. Dachte ich.

Tabellenaufbau: SPIEL (ID>, Team1, Tore1, Team2, Tore2), jedes Team kann als Team1 oder als Team2 ins Spiel gehen.

Per Union stelle ich die Spalten Team1/2 und Tore1/2 untereinander, bilde die Summe und verdichte auf das Team. Also

Select Team, sum(Tore)
from
(
Select Team1 as Team, Tore1 as Tore from Spiel
Union
Select Team2 as Team, Tore2 as Tore from Spiel
)
Group by Team.

So weit, so gut, läuft auch. Wenn allerdings eine Mannschaft zweimal die gleiche Torzahl erzielt hat, wird nicht addiert, sondern nur einer der Werte genommen. Dann wird aus

DEU 1 FRA 2
NED 0 DEU 1
DEU 2 LIT 2
FRA 3 RUS 1
RUS 2 NED 0

DEU 3 (anstatt 4)
FRA 5
NED 0
RUS 3
LIT 2

Es sieht aus, als würde beim Gruppieren nciht nur über das Team, sondern gleich über Tore mitgruppiert. Undichkrichlangsamnfön. Wer weiß was?

hallo,

probier mal UNION ALL

mfg
Andreas Langer

Ursache: Argumente für Group by
Hi Andreas,

aus unerfindlichen Gründen liefert der Union nur dann alles aus, wenn zusätzlich die Spalte Spiel (der Ident - Zufall?) in Select und Group by verwendet wird. Also kein ACCESS-Problem, sondern ein SQL-Verständnisproblem meinerseits. Ich bin erst draufgekommen, nachdem ich die Anweisung in einfachere Teile zerlegt habe.

Gruß Ralf