‎2006 Apr 20 3:28 AM
Hi experts...
Iam trying to get data from 4 tables (V_EQUI,JEST,TJ02T).
And i have selection screen is like this.
SELECTION-SCREEN BEGIN OF BLOCK A1 WITH FRAME TITLE TEXT-001.
SELECT-OPTIONS:S_EQTYP FOR EQUI-EQTYP, " DEFAULT 'H',
S_VKBUR FOR ITOB-VKBUR,
S_STATUS FOR TJ02T-TXT04.
PARAMETERS P_INBDT LIKE EQUI-INBDT DEFAULT SY-DATUM.
SELECTION-SCREEN END OF BLOCK A1.
Iam getting data in this way..
SELECT EQUNR EQTYP EQART INBDT
OBJNR VKBUR
INTO CORRESPONDING FIELDS OF TABLE T_ET
FROM V_EQUI
WHERE EQTYP <b>IN S_EQTYP</b> AND
VKBUR <b>IN S_VKBUR</b> AND
INBDT <b>LE P_INBDT.</b>
IF T_ET[] IS INITIAL.
MESSAGE S000(ZM) WITH 'No data is existing for this Selection!'.
LEAVE LIST-PROCESSING.
EXIT.
ENDIF.
LOOP AT T_ET.
IND = SY-TABIX.
SELECT SINGLE * FROM JEST WHERE OBJNR = T_ET-OBJNR AND
INACT = SPACE.
IF SY-SUBRC = 0.
T_ET-STAT = JEST-STAT.
MODIFY T_ET.
ENDIF.
SELECT SINGLE * FROM TJ02T WHERE ISTAT = T_ET-STAT AND
SPRAS = 'EN' AND
TXT04 IN <b>S_STATUS.</b>
IF SY-SUBRC = 0.
T_ET-TXT04 = TJ02T-TXT04.
MODIFY T_ET.
CLEAR T_ET.
* ELSE.
* DELETE T_ET INDEX IND.
ENDIF.
ENDLOOP.
Iam giving TXT04 IN <b>S_STATUS</b> in another select statement...is it fetch correct data...??
Just i want to know is it correct approach...
thanks
kaki
‎2006 Apr 20 3:58 AM
You might start by using table EQUI rather than view V_EQUI. The view is a join of four tables and since all the fields you are selecting in the first select come from the table, I'd start with that.
But your biggest problem will be that you are not selecting on key fields in this select (either primary or secondary).
Rob
‎2006 Apr 20 3:58 AM
You might start by using table EQUI rather than view V_EQUI. The view is a join of four tables and since all the fields you are selecting in the first select come from the table, I'd start with that.
But your biggest problem will be that you are not selecting on key fields in this select (either primary or secondary).
Rob
‎2006 Apr 20 4:16 AM
Hi Kaki,
This would be better.
SELECTION-SCREEN BEGIN OF BLOCK a1 WITH FRAME TITLE text-001.
SELECT-OPTIONS:s_eqtyp FOR equi-eqtyp, " DEFAULT 'H',
s_vkbur FOR itob-vkbur,
s_status FOR tj02t-txt04.
PARAMETERS p_inbdt LIKE equi-inbdt DEFAULT sy-datum.
SELECTION-SCREEN END OF BLOCK a1.
SELECT equnr eqtyp eqart inbdt
objnr vkbur
INTO CORRESPONDING FIELDS OF TABLE t_et
UP TO 2 ROWS
FROM v_equi
WHERE eqtyp IN s_eqtyp AND
vkbur IN s_vkbur AND
inbdt LE p_inbdt.
IF t_et[] IS INITIAL.
MESSAGE s000(zm) WITH 'No data is existing for this Selection!'.
LEAVE LIST-PROCESSING.
EXIT.
ENDIF.
DATA it_jest LIKE TABLE OF jest WITH HEADER LINE.
SELECT * FROM jest
INTO TABLE it_jest
FOR ALL ENTRIES IN t_et
WHERE objnr = t_et-objnr AND
inact = space.
SORT it_jest BY objnr inact.
LOOP AT t_et.
READ TABLE it_jest WITH KEY objnr = t_et-objnr BINARY SEARCH.
IF sy-subrc EQ 0.
t_et-stat = it_jest-stat.
MODIFY t_et TRANSPORTING stat.
ENDIF.
ENDLOOP.
DATA it_tj02t LIKE TABLE OF tj02t WITH HEADER LINE.
SELECT * FROM tj02t
INTO TABLE it_tj02t
FOR ALL ENTRIES IN t_et
WHERE istat = t_et-stat AND
spras = 'EN' AND
txt04 IN s_status.
SORT it_tj02t BY istat.
LOOP AT t_et.
READ TABLE it_tj02t WITH KEY istat = t_et-stat BINARY SEARCH.
IF sy-subrc EQ 0.
t_et-txt04 = it_tj02t-txt04.
MODIFY t_et TRANSPORTING txt04.
ENDIF.
ENDLOOP.
‎2006 Apr 20 4:41 AM
Hi Kaki,
this seems to be following on from yesterday's 'join' thread. It looks like you've decided to split up the selects. Please close the other thread and award points.
Regards
Neil