Sprint
Erfahrenes Mitglied
Hallo zusammen,
erst einmal sorry für die blöde Überschrift. Mir ist nichts besseres eingefallen.
Zu meinem Problem. Ich habe hier zwei Tabellen, die eine beinhaltet verschiedene Schulungen, die andere die entsprechenden Teilnehmer:
Schulungen: kursid, typ, start
Teilnehmer: tid, kursid, anzahl, storniert
Für einen Buchungskalender werden die Kurse so abgefragt:
select distinct s.*, t.anzahl
from schulungen s
left join teilnehmer t on s.kursid = t.kursid and t.storniert = '0000-00-00 00:00:00'
where s.start between '$suchstart' and '$suchende'
Das funktioniert, solange ich keine oder nur eine Anmeldung für einen Termin habe. Wenn aber mehrere Anmeldungen für einen Kurs vorliegen, wird dieser Kurs entsprechend mehrfach ausgegeben. Das stört aber die anschließende Kalendererstellung.
So kann das z.B. aussehen:
[TR1][TD]2[/TD][TD]6[/TD][TD]2018-05-07[/TD][TD]NULL[/TD][/TR1]
[TR2][TD]7[/TD][TD]1[/TD][TD]2018-06-18[/TD][TD]5[/TD][/TR2]
[TR1][TD]8[/TD][TD]2[/TD][TD]2018-06-20[/TD][TD]2[/TD][/TR1]
[TR2][TD]8[/TD][TD]2[/TD][TD]2018-06-20[/TD][TD]1[/TD][/TR2]
[TR1][TD]11[/TD][TD]4[/TD][TD]2018-07-02[/TD][TD]NULL[/TD][/TR1]
[TR2][TD]-[/TD][TD]-[/TD][TD]-[/TD][TD]-[/TD][/TR2]
[TR1][TD]8[/TD][TD]2[/TD][TD]2018-06-20[/TD][TD]3[/TD][/TR1]
Wie man sieht, ist der Kurs mit der id 8 zwei Mal gebucht und wird entsprechend zwei Mal ausgegeben. Ich bräuchte aber eine Ausgabe wie in der letzten Zeile dargestellt, also nur eine Zeile mit addierter Anzahl.
Ist das irgendwie machbar oder muß ich das über php lösen?
Danke schon mal im Voraus,
Sprint
erst einmal sorry für die blöde Überschrift. Mir ist nichts besseres eingefallen.
Zu meinem Problem. Ich habe hier zwei Tabellen, die eine beinhaltet verschiedene Schulungen, die andere die entsprechenden Teilnehmer:
Schulungen: kursid, typ, start
Teilnehmer: tid, kursid, anzahl, storniert
Für einen Buchungskalender werden die Kurse so abgefragt:
select distinct s.*, t.anzahl
from schulungen s
left join teilnehmer t on s.kursid = t.kursid and t.storniert = '0000-00-00 00:00:00'
where s.start between '$suchstart' and '$suchende'
Das funktioniert, solange ich keine oder nur eine Anmeldung für einen Termin habe. Wenn aber mehrere Anmeldungen für einen Kurs vorliegen, wird dieser Kurs entsprechend mehrfach ausgegeben. Das stört aber die anschließende Kalendererstellung.
So kann das z.B. aussehen:
kursid | typ | start | anzahl |
---|
[TR1][TD]2[/TD][TD]6[/TD][TD]2018-05-07[/TD][TD]NULL[/TD][/TR1]
[TR2][TD]7[/TD][TD]1[/TD][TD]2018-06-18[/TD][TD]5[/TD][/TR2]
[TR1][TD]8[/TD][TD]2[/TD][TD]2018-06-20[/TD][TD]2[/TD][/TR1]
[TR2][TD]8[/TD][TD]2[/TD][TD]2018-06-20[/TD][TD]1[/TD][/TR2]
[TR1][TD]11[/TD][TD]4[/TD][TD]2018-07-02[/TD][TD]NULL[/TD][/TR1]
[TR2][TD]-[/TD][TD]-[/TD][TD]-[/TD][TD]-[/TD][/TR2]
[TR1][TD]8[/TD][TD]2[/TD][TD]2018-06-20[/TD][TD]3[/TD][/TR1]
Wie man sieht, ist der Kurs mit der id 8 zwei Mal gebucht und wird entsprechend zwei Mal ausgegeben. Ich bräuchte aber eine Ausgabe wie in der letzten Zeile dargestellt, also nur eine Zeile mit addierter Anzahl.
Ist das irgendwie machbar oder muß ich das über php lösen?
Danke schon mal im Voraus,
Sprint