Gruppensumme

Von: , Frage gestellt am Fr, 25. Jun 2004

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?

2 Antworten zu dieser Frage

  1. Antwort von nach 4 Stunden 0 hilfreich
    Re: Gruppensumme

    hallo,

    probier mal UNION ALL

    mfg
    Andreas Langer

    • Antwort von nach 2 Tagen 0 hilfreich
      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

Keine passende Antwort gefunden? Jetzt eigene Frage stellen!