HI!mamba hat geschrieben:Hallo,
ich möchte aus einer Tabelle den aktuellen gültigen Satz lesen.
(Anhand von 'Datum ab' und 'Datum bis'.)
Wie macht man das am Geschicktesten?
Gibt es hierfür einen eigenen Befehl?
Viele Grüße!
Code: Alles auswählen.
*-----------------------------------------------------*
* Uhrzeit: 7 8 9 10 11 12 *
* Eingabe: X X *
* --------------------------------------------------- *
* Möglich 1: X X *
* Möglich 2: X X *
* Möglich 3: X X *
* Möglich 4: X X *
*-----------------------------------------------------*
SELECT *
FROM db_tab
INTO TABLE itba
WHERE strtdate EQ s_datum
AND
( ( strt >= zeit_von AND " Für M2, M1
strt < zeit_bis )
OR
( ende > zeit_von AND " Für M3, M1
ende <= zeit_bis )
OR
( strt <= zeit_von AND " Für M4
ende >= zeit_bis ) ) .
Code: Alles auswählen.
15.07.2003 31.12.9999
Code: Alles auswählen.
01.01.2005 31.03.2005
01.01.2005 31.12.9999
Code: Alles auswählen.
REPORT 1.
PARAMETERS:
p_datum TYPE dats OBLIGATORY DEFAULT sy-datum.
START-OF-SELECTION.
PERFORM do_it USING p_datum.
*&---------------------------------------------------------------------*
*& Form do_it
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->VALUE(I_DATUM) text
*----------------------------------------------------------------------*
FORM do_it USING value(i_datum) TYPE dats.
DATA:
lv_afori TYPE afrv-afori,
lv_afruv TYPE afrv-afruv,
lv_counter TYPE afrv-counter.
SELECT afori afruv counter
INTO (lv_afori, lv_afruv, lv_counter)
FROM afrv
WHERE endda >= i_datum
AND begda <= i_datum.
WRITE:
lv_afori, lv_afruv, lv_counter.
ENDSELECT.
write:
/ 'Anzahl gefundener Datensätze:',sy-dbcnt.
ENDFORM. "do_it