Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

getting data

Former Member
0 Likes
1,154

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

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
996

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

3 REPLIES 3
Read only

Former Member
0 Likes
997

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

Read only

0 Likes
996

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.

Read only

former_member186741
Active Contributor
0 Likes
996

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