Ergebnis nicht korrekt
bearbeitet von
Hallo Linuchs,
> möchte ich eintägige Events vom 1. - 31.07. und mehrtägige Events, die komplett im Juli liegen, im Juli beginnen oder im Juli enden.
Nein, möchtest Du nicht? Oder wie oder was? Vorhin schriebst Du:
> aber mehrtägige Events, die vor heute beginnen und noch laufen, sind nicht enthalten
Das heißt doch, Du möchtest Events, die schon begonnen haben, aber noch nicht zu Ende sind, auch sehen. Oder reden wir auf einmal von einer anderen Query? Wie auch immer - die Bedingungen sind je nach Wunsch so zu formulieren:
Wenn Du Events haben willst, die definitiv erst im Juli beginnen, dann musst Du
`trm1.tag >= '2019-07-01'`
abfragen. tag_end ist dann irrelevant.
Wenn Du Events haben willst, die im Juli laufen, aber ggf. vorher schon begonnen haben, musst Du
`COALESCE(trm1.tag_end, trm1.tag) >= '2019-07-01'`
abfragen.
Für Events, die im Juli laufen und im Juli enden, fragst Du
`COALESCE(trm1.tag_end, trm1.tag) <= '2019-07-31'`
Für Events, die im Juli beginnen und bis in den August hinein laufen dürfen, fragst Du nach
`trm1.tag <= '2019-07-31'`
Wähle zwei Bedingungen :)
Jedenfalls ist `(tag >= "2019-07-01" OR COALESCE( trm1.tag_bis, trm1.tag ) >= "2019-07-01")` unnötig kompliziert. Der links vom OR abgefragte Zeitraum ist eine Teilmenge des rechts abgefragten Zeitraums, daher ist der linke Teil überflüssig. Das gleiche gilt für deine Abfrage der Obergrenze.
_Rolf_
--
sumpsi - posui - clusi