Mengenoperation oder spezielle Datumsabfrage?

Data007

Neuer Benutzer
Beiträge
3
Hallo ich habe sql Abfragen für jeden Monat erstellt, die mir aus einer Tabelle,
die immer aktuelle Termine enthält, z.B. für Januar und Februar Termine ausgibt.
Nun brauche ich um Abrechnungspauschalen zu berechnen, eine allgemeine
Abfrage, die alle Termine, die z.B. im Januar nicht enden
noch in den Februar mit angezeigt werden, z.B. 28.01.13, der Vorgang ist erst im Februar zu ende
und soll dort erst auftauchen. Das gleiche gilt dann auch für 18.02.13, der im März erst zu Ende ist.


Januar
Beginn Ende
-------- --------
01.01.13 11.01.13
14.01.13 25.01.13
01.01.13 11.01.13
14.01.13 25.01.13
14.01.13 25.01.13
07.01.13 18.01.13
28.01.13 08.02.13
28.01.13 08.02.13
07.01.13 18.01.13
14.01.13 25.01.13
28.01.13 08.02.13


Februar
Beginn Ende
-------- --------
11.02.13 22.02.13
18.02.13 01.03.13
25.02.13 08.03.13
11.02.13 22.02.13
04.02.13 15.02.13
11.02.13 22.02.13
18.02.13 01.03.13
25.02.13 08.03.13
25.02.13 08.03.13
11.02.13 22.02.13
11.02.13 22.02.13

Die Befehle minus und intersect sind dafür nicht geeignet.

In meiner where-Klausel für z.B. Februar habe ich momentan nur
where ....
and TO_CHAR(Beginn, 'YY') = TO_CHAR(SYSDATE,'YY')
and TO_CHAR(Beginn, 'MM') = '01'

Ist das überhaupt möglich?

Meine Idee war erst, dass ich mir alle aus Januar und Februar anzeige, die innerhalb des Monats starten und enden
und daraus irgendwie die nicht angezeigten Termine erhalte,
aber irgendwie geht das nicht bzw. gibt es da noch einen speziellen Mengenoperator?
 
Werbung:
noch in den Februar mit angezeigt werden, z.B. 28.01.13, der Vorgang ist erst im Februar zu ende
und soll dort erst auftauchen. Das gleiche gilt dann auch für 18.02.13, der im März erst zu Ende ist.

Termine sollen also erst in dem Monat angezeigt werden, wo diese enden, oder?

Klingt jetzt nicht sooo schwer ...


Andreas
 
Wenn das Termin Ende relevant ist wiso fragst du dann im WHERE Teil den Anfang ab, prüfe doch einfach ob das Ende vom Monat her richtig liegt.
 
Werbung:
Zurück
Oben