SQL Query zum addieren einer Spalte mit bes. Bedingung

  • Moin zusammen,

    ich benötige einen SQL Query, der mir die Summe einer Spalte (punkte), grupiert nach einer id (benutzer_id) zurückgibt.

    Bis dahin ist das für mich einfach.

    Jetzt kommt aber noch eine zusätzliche Bedingung dazu: weiterhin soll er nur die Zeilen jeweils aufsummieren, wo der summierungstyp (highscore_type) "high" bzw. "low" ist.
    Ob der Typ high oder low ist lässt sich allerdings nur aus einer zweiten Tabelle entnehmen. Die richtige Zuordnung der Zeilen geschiet über eine eindeutige ID (gid).

    Zum besseren Verständnis hier einmal ein paar Dummy Daten samt Struktur:

    Ein query ala

    SQL
    SELECT
    p.gid, p.benutzer_id, SUM(p.punkte) as total, s.highscore_type
    FROM test_punkte p
    LEFT JOIN test_spiel s ON (p.gid = s.gid)
    GROUP BY (p.benutzer_id)
    HAVING s.highscore_type = 'low'

    funktioniert leider nicht.

    Habt ihr eine Idee wie ich das lösen kann ohne die Trennung der beiden Tabellen aufzuheben?

    Gruß,
    Lukas

  • SQL
    SELECT test_punkte.gid, test_punkte.benutzer_id, SUM(test_punkte.punkte) AS total, test_spiel.highscore_type
    FROM test_punkte, test_spiel
    WHERE test_punkte.gid = test_spiel.gid
    AND test_spiel.highscore_type = 'low'
    GROUP BY test_spiel.benutzer_id;


    habs aber nit getestet

    Sei immer du selbst. Außer du kannst Batman sein. Sei immer Batman!