Zitat:
Zitat von Arath
Hallo zusammen,
zurzeit versuche ich eine kleine Eventverwaltung zu erstellen.
Da meine SQL Kenntnisse nicht wirklich ausgegrägt sind, stecke ich gerade an einem kleinen Problem.
Das Ziel ist es die Teilnehmerzahlen aus der Datenbank auszulesen und mit jedem Event zusammen gruppiert auszugeben.
Es existieren die folgenden drei Tabellen:
events
----------------------------
id | label | day | location
----------------------------
groups
------------------
id | number | age
------------------
participants
------------------------------------------------------------
id | event_id | group_id | first_name | last_name | gender
------------------------------------------------------------
Nun hätte ich gerne die Anzahl der Teilnehmer pro Event, aufgeteilt nach Gruppe und Geschlecht.
Also etwa sowas:
-----------------------------------------------------------------------
event.* | men_group1 | women_group1 | men_group2 | women_group2 | ...
-----------------------------------------------------------------------
Ist das zu realisieren? Habe bereits versucht mit Group by und Joins rumzubasteln, aber habe es in dieser Art nicht hinbekommen.
Kann mir jemand sagen wie die passende Anfrage dazu aussehen würde?
|
Wie hängen die Tabellen zusammen?
Ich habe noch ein Problem damit zu verstehen, wozu groups dienen soll. Bzw. habe ich das Gefühl, Du hast da prinzipielle Fehler im Design: was ist, wenn Personen an mehreren Events teilnehmen? Deine participants - Tabelle ist IMHO Bullshit.
Ansonsten ist das, was Du willst, nicht trivial lösbar, weil die Anzahl der Gruppen, und damit Spalten im Resultat, nicht fest definierbar ist. Das, was Du machen willst, ist prinzipiell gesehen Zeilen zu Spalten machen, dazu gibt es woanders Anleitungen, z.B. hier:
https://www.pg-forum.de/viewtopic.php?f=66&t=4067 , je nach DB-System hast Du da mehr oder weniger gute Karten. Als Suchwort für Google schlage ich Dir Pivot vor.