Man könnte dort natürlich jedes Mal ein Select-Statement fest in einer LOV verdrahten und diese Daten dann anzeigen.
Eleganter geht's aber mit einer View, die man zur Datenselektion benutzt. Hier sind 3 Beispiele für solche Views :
CREATE OR REPLACE FORCE VIEW JAHRE_V
(DATUM) AS
SELECT add_months (trunc (sysdate, 'YYYY'), 12 * (50 - Level))
FROM Dual
CONNECT BY Level <= 100;
CREATE OR REPLACE FORCE VIEW MONATE_V
(DATUM) AS
SELECT add_months (trunc (sysdate, 'MM'), 500 - Level)
FROM Dual
CONNECT BY Level <= 1000;
CREATE OR REPLACE FORCE VIEW TAGE_V
(DATUM) AS
SELECT trunc (sysdate) + 15000 - Level
FROM Dual
CONNECT BY Level <= 30000;
Diese Views ermöglichen nun den einfachen Select auf
- Aktuelles Jahr +/- 50 Jahre
- Aktueller Monat +/- 500 Monate
- Aktueller Tag +/- 15000 Tage
In einer Record-Group verwendet man diese Views dann so:
Werteliste der nächsten 10 Jahre
SELECT Datum
FROM Jahre_V
WHERE Datum BETWEEN trunc (sysdate, 'YYYY')
AND add_months (trunc (sysdate, 'YYYY'), 10*12);
Werteliste der letzten 30 Tage und der nächsten 10 Tage
SELECT Datum
FROM Tage_V
WHERE Datum BETWEEN trunc (sysdate-30) AND trunc (sysdate+10);
Einfacher geht es kaum noch
Gerd
Keine Kommentare:
Kommentar veröffentlichen