‎2007 Sep 19 4:53 PM
hallow
i doing this select 2 times from the same table and it working well.
i wonder if there is better way to do that ?
Regards
LOOP AT i_t_data INTO lw_t_data_0org.
SELECT begda endda sobid
<b>FROM hrp1001</b>
INTO TABLE lt_relat_org
WHERE objid EQ lw_t_data_0org-orgeh
AND rsign EQ 'B'
AND relat EQ '012'
AND plvar = '01'
AND endda GE lw_t_data_0org-datefrom
AND begda LE lw_t_data_0org-dateto.
SORT lt_relat_org BY begda DESCENDING endda DESCENDING sobid.
CLEAR lw_relat_org.
READ TABLE lt_relat_org INDEX 1 INTO lw_relat_org.
IF sy-subrc EQ '0'.
SELECT SINGLE sobid
<b>FROM hrp1001</b>
INTO tmp_sobid
WHERE objid = lw_relat_org-sobid
AND relat = '008'
AND rsign = 'A'
AND endda GE lw_relat_org-begda
AND begda LE lw_relat_org-endda.
MOVE tmp_sobid TO lw_t_data_0org-zzmanager.
ENDIF.
<b> APPEND lw_t_data_0org TO lc_t_data_0org.</b>
ENDLOOP.
‎2007 Sep 19 5:25 PM
Hi,
Please try this.
data: wa_begda like hrp1001-begda,
wa_endda like hrp1001-begda,
wa_sobid like hrp1001-begda.
LOOP AT i_t_data INTO lw_t_data_0org.
SELECT begda endda sobid UP TO 1 ROWS
FROM hrp1001
INTO (wa_begda, wa_endda, wa_sobid)
WHERE objid EQ lw_t_data_0org-orgeh
AND rsign EQ 'B'
AND relat EQ '012'
AND plvar EQ '01'
AND endda GE lw_t_data_0org-datefrom
AND begda LE lw_t_data_0org-dateto
ORDER BY begda DESCENDING
endda DESCENDING
sobid.
ENDSELECT.
IF sy-subrc EQ '0'.
SELECT SINGLE sobid
FROM hrp1001
INTO tmp_sobid
WHERE objid = wa_sobid
AND relat = '008'
AND rsign = 'A'
AND endda GE wa_begda
AND begda LE wa_endda.
MOVE tmp_sobid TO lw_t_data_0org-zzmanager.
ENDIF.
APPEND lw_t_data_0org TO lc_t_data_0org.
ENDLOOP.
Regards,
Ferry Lianto
‎2007 Sep 19 5:08 PM
hi
good
use MOVE CORRESPONDING statement in all your select statement,it ll increase your performance of the select statement.
thanks
mrutyun^
‎2007 Sep 19 5:21 PM
I think that this thing is solving ur problem, i dont know why ur fetching two times? so do this:
SELECT SINGLE sobid
FROM hrp1001
INTO tmp_sobid
WHERE objid = lw_relat_org-sobid
AND relat = '008'
AND rsign = 'A'
AND endda GE lw_relat_org-begda
AND begda LE lw_relat_org-endda.
lw_t_data_0org-zzmanager -tmp_sobid .
append lw_t_data_0org.
*MOVE tmp_sobid TO lw_t_data_0org-zzmanager.
Regards,
Usman Malik
‎2007 Sep 19 5:25 PM
Hi,
Please try this.
data: wa_begda like hrp1001-begda,
wa_endda like hrp1001-begda,
wa_sobid like hrp1001-begda.
LOOP AT i_t_data INTO lw_t_data_0org.
SELECT begda endda sobid UP TO 1 ROWS
FROM hrp1001
INTO (wa_begda, wa_endda, wa_sobid)
WHERE objid EQ lw_t_data_0org-orgeh
AND rsign EQ 'B'
AND relat EQ '012'
AND plvar EQ '01'
AND endda GE lw_t_data_0org-datefrom
AND begda LE lw_t_data_0org-dateto
ORDER BY begda DESCENDING
endda DESCENDING
sobid.
ENDSELECT.
IF sy-subrc EQ '0'.
SELECT SINGLE sobid
FROM hrp1001
INTO tmp_sobid
WHERE objid = wa_sobid
AND relat = '008'
AND rsign = 'A'
AND endda GE wa_begda
AND begda LE wa_endda.
MOVE tmp_sobid TO lw_t_data_0org-zzmanager.
ENDIF.
APPEND lw_t_data_0org TO lc_t_data_0org.
ENDLOOP.
Regards,
Ferry Lianto