Hallo zusammen,
ich schlage mich schon ein paar Tage mit dem Problem herum:
Ich habe eine SQlite-Tabelle, in der Zeiträume angegeben sind:
startdate enddate
2017-01-01 2017-06-30
2017-07-01 2017-12-31
2018-01-01 2018-06-30
2018-07-01 2018-12-31
2019-01-01 2019-06-30
2019-07-01 2019-12-31
2020-01-01 2020-06-30
2020-07-01 2020-12-31
2021-01-01 2021-06-30
Meine Abfrage soll z.B. folgendes Ergebnis haben(siehe nachfolgendes SELECT) als Suchdatum ab::
2018-06-15 2019-06-30
2019-07-01 2019-12-31
2020-01-01 2020-06-30
2020-07-01 2020-12-31
2021-01-01 2021-15-02
also: das erste Datum liegt im freigewählten Zeitraum ( als Suchdatum ) und das letzte Datum geht bis
jetzt = 'now'(hier: 2021-15-02).
Wie löse ich die SQL abfrage ?
ich habe es versucht mit:
SELECT startdate, enddate FROM tabelle WHERE CASE WHEN startdate >= '2018-06-15'
und mit
SELECT startdate, enddate FROM tabelle WHERE CASE WHEN startdate >= date('now','start of year') AND enddate <'now' THEN 1 ELSE 0 END
dann bekomme ich.
2018-07-01 2018-12-31
2019-01-01 2019-06-30
2020-07-01 2020-12-31
2021-01-01 2021-06-30
2021-01-01 2021-15-02
Das zweite SELECT habe ich in einer zweiten Cursor Schleife laufen, deshalb bekomme ich auch
2021-01-01 2021-06-30
zurück. Wie bekomme ich die Zeiträume ohne den letzten Zeitraum zurück, sondern nur den Zeitraum vom letzten Jahreswechsel bis jetzt?
Das gleiche Problem habe ich auch am Anfang mit dem frei gewählten Datum.
Geht das überhaupt über ein reines SQL-Statement? Oder brauche ich 3 Schleifen, - dann habe ich das Problem,
wie kann ich aus dem Jahr das höchste Datum auswählen(der Zeitraum hat ja immer zwei Zeitpunkte). Wie kann ich das bewerkstelligen ?
Mit <= oder >= Versuchen komme ich auch nicht weiter.
Kann mir jemand einen Lösungshinweis geben ?
Danke !
ich schlage mich schon ein paar Tage mit dem Problem herum:
Ich habe eine SQlite-Tabelle, in der Zeiträume angegeben sind:
startdate enddate
2017-01-01 2017-06-30
2017-07-01 2017-12-31
2018-01-01 2018-06-30
2018-07-01 2018-12-31
2019-01-01 2019-06-30
2019-07-01 2019-12-31
2020-01-01 2020-06-30
2020-07-01 2020-12-31
2021-01-01 2021-06-30
Meine Abfrage soll z.B. folgendes Ergebnis haben(siehe nachfolgendes SELECT) als Suchdatum ab::
2018-06-15 2019-06-30
2019-07-01 2019-12-31
2020-01-01 2020-06-30
2020-07-01 2020-12-31
2021-01-01 2021-15-02
also: das erste Datum liegt im freigewählten Zeitraum ( als Suchdatum ) und das letzte Datum geht bis
jetzt = 'now'(hier: 2021-15-02).
Wie löse ich die SQL abfrage ?
ich habe es versucht mit:
SELECT startdate, enddate FROM tabelle WHERE CASE WHEN startdate >= '2018-06-15'
und mit
SELECT startdate, enddate FROM tabelle WHERE CASE WHEN startdate >= date('now','start of year') AND enddate <'now' THEN 1 ELSE 0 END
dann bekomme ich.
2018-07-01 2018-12-31
2019-01-01 2019-06-30
2020-07-01 2020-12-31
2021-01-01 2021-06-30
2021-01-01 2021-15-02
Das zweite SELECT habe ich in einer zweiten Cursor Schleife laufen, deshalb bekomme ich auch
2021-01-01 2021-06-30
zurück. Wie bekomme ich die Zeiträume ohne den letzten Zeitraum zurück, sondern nur den Zeitraum vom letzten Jahreswechsel bis jetzt?
Das gleiche Problem habe ich auch am Anfang mit dem frei gewählten Datum.
Geht das überhaupt über ein reines SQL-Statement? Oder brauche ich 3 Schleifen, - dann habe ich das Problem,
wie kann ich aus dem Jahr das höchste Datum auswählen(der Zeitraum hat ja immer zwei Zeitpunkte). Wie kann ich das bewerkstelligen ?
Mit <= oder >= Versuchen komme ich auch nicht weiter.
Kann mir jemand einen Lösungshinweis geben ?
Danke !
Comment