Hallo ... derzeit stehe ich etwas auf dem Schlauch und komme nicht zu dem gewünschten Ergebnis.
Ausgangslage: ich habe 2 Tabellen "Events" & "Bookings"
Events hat eine ID, Bezeichnung, Datum, Status und diverse andere Felder
Bookings beinhaltet die jeweiligen Buchungen dazu, ebenfalls mit der ID, Status, gebuchte Plätze usw.
Ich habe mit folgendem SELECT hinbekommen, dass die Buchungen zusammengefasst pro Veranstaltung dargestellt werden können, für das aktuelle Tagesdatum,
SELECT
`nt_em_events`.`event_id` AS `event_id`,`nt_em_events`.`event_name` AS `event_name`,
(`nt_em_events`.`event_spaces`) AS `event_spaces`,
sum(`nt_em_bookings`.`booking_spaces`) AS `booking_spaces`,
sum((case when (`nt_em_bookings`.`booking_status` = 1) then `nt_em_bookings`.`booking_spaces` else 0 end)) AS `booking_approved`,
sum((case when (`nt_em_bookings`.`booking_status` = 5) then `nt_em_bookings`.`booking_spaces` else 0 end)) AS `booking_reserved`
from (`nt_em_events`
left join `nt_em_bookings` on((`nt_em_events`.`event_id` = `nt_em_bookings`.`event_id`)))
where ((`nt_em_events`.`event_start_date` = curdate()) and (`nt_em_events`.`event_status` = 1) and ((`nt_em_events`.`recurrence` = 0) or isnull(`nt_em_events`.`recurrence`)))
group by `nt_em_events`.`event_id`
(die gebuchten Plätze werden mittels 'case when' noch getrennt summiert)
Das Ergebnis sieht dann so aus:
Soweit alles schön und gut - dieser Select liefert mir genau das, was ich wollte.
Nun wollt ich zusätzlich eine zweit Abfrage erstellen, die mir genau die oben genannte Ergebnisse liefert, allerdings nicht pro Veranstaltung, sondern als Gesamtsummen für den Kalendertag. Also eine einzige Summenzeile für den Kalendertag, die mir die oben gezeigten 4 Spalten mit Werte summiert und dann nur noch das Datum anzeigt, z.B. so:
Ich bekomme es einfach nicht geregelt wenn ich zusätzlich noch die event_spaces summiere, (ohne group by) dann kann die Summe nicht korrekt sein, da aufgrund des LEFT JOIN die Werte wohl mehrfach summiert werden pro Veranstaltung. Auch habe ich schon diverse andere Kombinationen von JOIN probiert, aber, wie eingangs erwähnt, ich komme hier nicht weiter.
Ich hoffe, dass mir einer der Experten hier einen hilfreichen Tipp geben kann
Ausgangslage: ich habe 2 Tabellen "Events" & "Bookings"
Events hat eine ID, Bezeichnung, Datum, Status und diverse andere Felder
Bookings beinhaltet die jeweiligen Buchungen dazu, ebenfalls mit der ID, Status, gebuchte Plätze usw.
Ich habe mit folgendem SELECT hinbekommen, dass die Buchungen zusammengefasst pro Veranstaltung dargestellt werden können, für das aktuelle Tagesdatum,
SELECT
`nt_em_events`.`event_id` AS `event_id`,`nt_em_events`.`event_name` AS `event_name`,
(`nt_em_events`.`event_spaces`) AS `event_spaces`,
sum(`nt_em_bookings`.`booking_spaces`) AS `booking_spaces`,
sum((case when (`nt_em_bookings`.`booking_status` = 1) then `nt_em_bookings`.`booking_spaces` else 0 end)) AS `booking_approved`,
sum((case when (`nt_em_bookings`.`booking_status` = 5) then `nt_em_bookings`.`booking_spaces` else 0 end)) AS `booking_reserved`
from (`nt_em_events`
left join `nt_em_bookings` on((`nt_em_events`.`event_id` = `nt_em_bookings`.`event_id`)))
where ((`nt_em_events`.`event_start_date` = curdate()) and (`nt_em_events`.`event_status` = 1) and ((`nt_em_events`.`recurrence` = 0) or isnull(`nt_em_events`.`recurrence`)))
group by `nt_em_events`.`event_id`
(die gebuchten Plätze werden mittels 'case when' noch getrennt summiert)
Das Ergebnis sieht dann so aus:
Soweit alles schön und gut - dieser Select liefert mir genau das, was ich wollte.
Nun wollt ich zusätzlich eine zweit Abfrage erstellen, die mir genau die oben genannte Ergebnisse liefert, allerdings nicht pro Veranstaltung, sondern als Gesamtsummen für den Kalendertag. Also eine einzige Summenzeile für den Kalendertag, die mir die oben gezeigten 4 Spalten mit Werte summiert und dann nur noch das Datum anzeigt, z.B. so:
Ich bekomme es einfach nicht geregelt wenn ich zusätzlich noch die event_spaces summiere, (ohne group by) dann kann die Summe nicht korrekt sein, da aufgrund des LEFT JOIN die Werte wohl mehrfach summiert werden pro Veranstaltung. Auch habe ich schon diverse andere Kombinationen von JOIN probiert, aber, wie eingangs erwähnt, ich komme hier nicht weiter.
Ich hoffe, dass mir einer der Experten hier einen hilfreichen Tipp geben kann