Hallo,
Die Anzahl von Wochen und Monaten stehen in einigen Tabellen einer Datenbank.
ich muss damit "irgendwie" zurecht kommen. Datumswerte gibt es nicht. Ich muss z.B. alle Datensätze auslesen, die vom April 2019 sind. Das entspricht der Anzahl von Monaten => 24220.
Die Angaben zu Daten in der Datenbank sind viel zu ungenau, um eine Lösung zu formulieren.
Unter folgender der Annahme:
- für jeden Tag des Kalenders existiert genau ein Eintrag in der Tabelle t_kalender mit den Spalten Tag, Monat, Jahr
- nicht mehr als 99 Tage je für eine Kombination aus Monat/Jahr
- nicht mehr als 99 Monate für ein Jahr
Parameter:
von_tag
von_monat
von_jahr
bis_tag
bis_monat
bis_jahr
Code:
select count(tag) as cnt_tag, count (distinct jahr, monat) as cnt_monat
from t_kalender
where ((((:von_jahr * 100 + :von_monat) * 100) + :von_tag) <= (((jahr * 100 + monat) * 100) + tag)) and
((((:bis_jahr * 100 + :bis_monat) * 100) + :bis_tag) >= (((jahr * 100 + monat) * 100) + tag))
Rückgabewerte:
cnt_tag Anzahl Tage im Zeitraum
cnt_monat Anzahl Monate im Zeitraum