M
mw197
Gast
Hallo Leute,
ich bitte um eure Hilfe. Ich habe folgendes Schema an Tabellen:
Tabelle kunden
Tabelle karten
Dort werden also nur die Karten aufgelistet, die es gibt. Und zu den Karten, gibt es dann die eingelösten Werte eines Kunden (also wie oft einer da war). Diese Daten werden so gespeichert, so dass ich insgesamt 3 Tabellen habe:
Tabelle karten_teilnahmen
Soweit ist alles bestens. Ich möchte aber jetzt gerne eine Auflistung, wie oft ein Kunde pro Karte da war.
Sprich: Das Ergebnis soll so aussehen:
Kann mir jemand sagen, wie ich das hinkriege?
Mit einem normalen LEFT JOIN komme ich ja nicht weit?
Oder habe ich nur ein Brett vor dem Kopf?
Mein bisheriger Code (klappt aber nicht):
Hat jemand eine Idee und könnte mir dabei weiterhelfen?
Ich muss ja irgendwie mit BETWEEN arbeiten, da jeder Kunde ja auch mehrere Karten kaufen kann. Nur wie bringe ich das da mit ein?! Er muss ja anhand des Gültigkeitszeitraums die Anzahl ermitteln. Das ist eigentlich mein Problem.
Danke für Tipps und Hilfestellungen im Voraus!
ich bitte um eure Hilfe. Ich habe folgendes Schema an Tabellen:
Tabelle kunden
Code:
kundenID | vorname | nachname
---------+---------+-----------
1 | Max | Mustermann
2 | Erika | Musterfrau
Tabelle karten
Code:
kartenID | gueltig_von | gueltig_bis | kundenID
---------+-------------+-------------+---------
1 | 2014-01-01 | 2015-01-01 | 1
2 | 2013-04-15 | 2014-08-01 | 2
3 | 2014-09-01 | 2014-12-31 | 2
Dort werden also nur die Karten aufgelistet, die es gibt. Und zu den Karten, gibt es dann die eingelösten Werte eines Kunden (also wie oft einer da war). Diese Daten werden so gespeichert, so dass ich insgesamt 3 Tabellen habe:
Tabelle karten_teilnahmen
Code:
teilnahmeID | kundenID | datum
------------+----------+------------
1 | 1 | 2014-03-05
2 | 2 | 2014-07-06
3 | 2 | 2014-05-08
4 | 1 | 2014-04-04
5 | 2 | 2014-05-29
Soweit ist alles bestens. Ich möchte aber jetzt gerne eine Auflistung, wie oft ein Kunde pro Karte da war.
Sprich: Das Ergebnis soll so aussehen:
Code:
kundenID | kartenID | COUNT
---------+----------+-------
1 | 1 | 3
2 | 2 | 2
2 | 3 | 1
Kann mir jemand sagen, wie ich das hinkriege?
Mit einem normalen LEFT JOIN komme ich ja nicht weit?
Oder habe ich nur ein Brett vor dem Kopf?
Mein bisheriger Code (klappt aber nicht):
Code:
SELECT COUNT(`teilnahmeID`) AS `summe` FROM `karten_teilnahmen`
LEFT JOIN `karten` ON `karten`.`kundenID` = `karten_teilnahmen`.`kundenID`
GROUP BY `teilnahmeID`
Hat jemand eine Idee und könnte mir dabei weiterhelfen?
Ich muss ja irgendwie mit BETWEEN arbeiten, da jeder Kunde ja auch mehrere Karten kaufen kann. Nur wie bringe ich das da mit ein?! Er muss ja anhand des Gültigkeitszeitraums die Anzahl ermitteln. Das ist eigentlich mein Problem.
Danke für Tipps und Hilfestellungen im Voraus!