Das geht nur mit einer native sql-Anweisung, sofern es denn die Datenbank unterstützt. Da ist aber dann die Frage, ob sich dieser Aufwand lohnt, oder ob man die Abfrage nicht anderweitig realisieren kann. Wenn man das Concat wegläßt und die einzelnen Felder benutzt, dürfte man zum gleichen Ergegnis kommen, oder?!
... where jjjj > von(jjjj) and jjjj < bis(jjjj)
and mm > ... usw.
Bin der Meinung, daß man das trotzdem hinbekommt. Man muß in Abhängigkeit der Intervallgrenzen die where-Bedingung dynamisch aufbauen (was in ABAP möglich ist), aber dann funktioniert das.
Ich würde sagen, das Ergebnis stimmt. Hab das ganze mal eben in einer mysql schnell ausprobiert. Wie gesagt, je nach Intervall muß man die where-Bedingung unterschiedlich aufbauen, aber das ist kein unlösbares Problem. Wenn man das macht, fällt mir kein Fall mehr ein, in dem es falsche Ergebnisse liefert (lasse mich aber gern vom Gegenteil überzeugen).
Man muss es nicht dynamisch machen, nur sieht dann die Verschachtelung der verschiedenen geklammerten und mit OR und AND verknüpften Bedingungen etwas unübersichtlich aus, da man noch den Fall from_year < to_year mit beachten muss.
(Den Fall from_year > to_year lässt man lieber nicht von der DB prüfen, sondern selektiert gar nicht erst.)
Frank Dittrich hat geschrieben:Man muss es nicht dynamisch machen, nur sieht dann die Verschachtelung der verschiedenen geklammerten und mit OR und AND verknüpften Bedingungen etwas unübersichtlich aus, da man noch den Fall from_year < to_year mit beachten muss.
(Den Fall from_year > to_year lässt man lieber nicht von der DB prüfen, sondern selektiert gar nicht erst.)
Zugegeben.
Dann wird es aber wirklich etwas unübersichtlich