MYSQL Kalender

Hallo!
Ich habe folgendes Problem. Ich habe eine Tabelle mit einer Anzahl von Einträgen pro Datum. Ich will jetzt für einen Zeitraum für jeden Tag diese Anzahl wissen, allerdings in einer kompletten Tabelle (also wenn kein Eintrag existiert will ich eine 0 haben).
Das müsste mit einem RIGHT OUTER JOIN der bisherigen Tabelle mit einer „Datums-Tabelle“ funktionieren. In dieser Datumstabelle sollen wirklich jedes Datum innerhalb des Zeitraums drinstehen.

Also für Zeitraum 2004-01-01 00:00:00 bis 2004-01-05 00:00:00 soll in der Tabelle drinstehen:
2004-01-01
2004-01-02
2004-01-03
2004-01-04
2004-01-05

Gibt es dafür eine SQL-Anweisung, die eine solche Tabelle (nur temporär für den JOIN) erstellt?
Viele Grüße!
Sebastian

Hi Sebastian,
nochmal zum Verständnis:
du hast eine Tabelle, in der mehrere „Termine“ pro Tag usw. für mehrere Jahre drin stehen.
Jetzt willst du pro Tag die Termine in eine temporäre Tabelle speichern ? oder nur die Anzahl der Termine für jeden Tag ?
Willst du mehrere Tabellen dynamisch erstellen oder reicht die eine ?

Gruss
Kyle

Hm, ist gar nicht so einfach zu erklären. Vielleicht hab ich mit meiner JOIN-Formulierung auch mehr verwirrt. Ich beschreibe noch mal mein Problem von Grund auf in einem Beispiel, das Stichwort ‚Termine‘ war gar nicht schlecht, nehmen wir mal an, ich speichere Termine in einer Tabelle.

Ich habe eine Tabelle nach folgendem Schema
„termine“:
nr datum weitere Spalten…
1 01.01.04 …
2 01.01.04
3 01.01.04
4 04.01.04
5 04.01.04
6 05.01.04

Dann bekomme ich mit
SELECT COUNT(*) AS anzahl, datum
FROM termine
GROUP BY (datum)
ja folgende Tabelle:

anzahl datum
3 01.01.04
2 04.01.04
1 05.01.04

Ich benötige aber eine Tabelle die so aussieht:
anzahl datum
3 01.01.04
0 02.01.04
0 03.01.04
2 04.01.04
1 05.01.04

Wäre für einen Tipp sehr dankbar! :smile:
Viele Grüße, Sebastian

Ich habe eine Tabelle nach folgendem Schema
„termine“:
nr datum weitere Spalten…
1 01.01.04 …
2 01.01.04
3 01.01.04
4 04.01.04
5 04.01.04
6 05.01.04

Ich benötige aber eine Tabelle die so aussieht:
anzahl datum
3 01.01.04
0 02.01.04
0 03.01.04
2 04.01.04
1 05.01.04

nein, du kannst keine werte auslesen, die nicht drin stehen. zumindest nicht in dem kontext mit mysql. will heissen, die 0-eintraege muessen aus der applikation kommen:

du fragst deine termine pro tag ab, speicherst das ergebnis in einem array zwischen am besten noch umformen ( $foo = array(‚01.01.04‘=>3,‚04.01.04‘=>2 … ) und erzeugst dann das kalenderblatt in der applikation und gehst fuer jjeden tag mit einer search-funktion ueber dein array…

du fragst deine termine pro tag ab, speicherst das ergebnis in
einem array zwischen am besten noch umformen ( $foo =
array(‚01.01.04‘=>3,‚04.01.04‘=>2 … ) und erzeugst
dann das kalenderblatt in der applikation und gehst fuer
jjeden tag mit einer search-funktion ueber dein array…

Alternativ:
Leg die temporäre Tabelle mit allen benötigten Datümmer an, also
lass deine Applikation über alle Tage laufen und mach ein Insert
mit 0. Danach kannst du durch die alle durchlaufen und in der
termin-tabelle die zugehörige anzahl ermitteln und es jeweils
abspeichern.

nein, du kannst keine werte auslesen, die nicht drin stehen.
zumindest nicht in dem kontext mit mysql. will heissen, die
0-eintraege muessen aus der applikation kommen

Danke für die Antwort - wenn’s mit SQL-Bordmitteln keine Lösung gibt muss ich auch nicht mehr weiter nach einer suchen :wink: Aber wenn man nicht weiß ob es geht oder nicht scheut man sich vor einer anderen (vermeidlich umständlicheren) Lösung.
Danke!
Viele Grüße, Sebastian