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

Select - still need help

Former Member
0 Likes
735

SELECT * FROM LIKP

INTO CORRESPONDING FIELDS OF TABLE IT_DATA

WHERE LFDAT IN S_LFDAT .

LOOP AT IT_DATA .

SELECT * FROM LIPS INTO CORRESPONDING FIELDS OF IT_DATA2

WHERE VBELN = IT_DATA-VBELN AND

MATNR IN S_MATNR AND

WERKS IN S_WERKS AND

( BWART IN S_BWARTO OR

BWART IN S_BWARTI ) .

IT_DATA3-VBELN = IT_DATA-VBELN .

IT_DATA3-KUNNR = IT_DATA-KUNNR .

IT_DATA3-LFDAT = IT_DATA-LFDAT .

IT_DATA3-MATNR = IT_DATA2-MATNR .

IT_DATA3-LFIMG = IT_DATA2-LFIMG .

IT_DATA3-BWART = IT_DATA2-BWART .

APPEND IT_DATA3 .

  • APPEND IT_DATA2 .

ENDSELECT .

ENDLOOP .

these are data

I |BT |20070602|20070621 - S_LFDAT

I |EQ |000000000101200000 - s_matnr

I |EQ |TCKJ| - s_werks

I |BT |622|623 - s_bwarto

I |EQ |621| - s_bwarti

data exist in the tables but i am not hetting nothing ...

Why?

Because of loop or ?

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
711

Hi ...friend here is your Qurey just cut and paste <b>it was working </b> ... i did cnahges for you ...

REPORT  ZAASD.

tables  :   likp , lips  .

data :  begin of  IT_DATA occurs  0 .
include  structure    likp  .
data :  end of iT_DATA .

data :  begin of  IT_DATA2    occurs  0.
include  structure    lips  .
data :  end of iT_DATA2 .

select-options  :  S_LFDAT  for   likp-LFDAT,
S_MATNR  for LIPS-matnr ,
S_WERKS for LIPS-werks ,
S_BWARTO for LIPS-bwart ,
S_BWARTI for LIPS-bwart .

data :begin of it_data3  occurs  0  ,
VBELN like likp-VBELN ,
KUNNR like likp-KUNNR ,
LFDAT like likp-LFDAT ,
MATNR like LIPS-MATNR ,
LFIMG like LIPS-LFIMG ,
BWART like LIPS-BWART,
end of it_data3 .

SELECT * FROM LIKP INTO CORRESPONDING FIELDS OF TABLE IT_DATA
WHERE LFDAT IN S_LFDAT .

LOOP AT IT_DATA .
SELECT * FROM LIPS INTO CORRESPONDING FIELDS OF IT_DATA2 WHERE VBELN = IT_DATA-VBELN AND
                                                              MATNR IN S_MATNR AND
                                                              WERKS IN S_WERKS AND
                                                              ( BWART IN S_BWARTO OR
                                                              BWART IN S_BWARTI ) .


IT_DATA3-VBELN = IT_DATA-VBELN .
IT_DATA3-KUNNR = IT_DATA-KUNNR .
IT_DATA3-LFDAT = IT_DATA-LFDAT .
IT_DATA3-MATNR = IT_DATA2-MATNR .
IT_DATA3-LFIMG = IT_DATA2-LFIMG .
IT_DATA3-BWART = IT_DATA2-BWART .
APPEND IT_DATA3 .

ENDSELECT .
ENDLOOP .


loop  at it_data3 .

write : / IT_DATA3-VBELN ,
IT_DATA3-KUNNR ,
IT_DATA3-LFDAT ,
IT_DATA3-MATNR ,
IT_DATA3-LFIMG ,
IT_DATA3-BWART .
endloop.

reward points if it is usefull ....

Girish

7 REPLIES 7
Read only

Former Member
0 Likes
711

Hello,

Change the code like this.


if not it_data[] is initial.
SELECT * FROM LIPS INTO CORRESPONDING FIELDS OF IT_DATA2
for all entries in it_data
WHERE VBELN = IT_DATA-VBELN AND
MATNR IN S_MATNR AND
WERKS IN S_WERKS AND
( BWART IN S_BWARTO OR
BWART IN S_BWARTI ) .

endif.

loop at it_data.
loop at it_data2 where vbeln = it_data-vbeln.
IT_DATA3-VBELN = IT_DATA-VBELN .
IT_DATA3-KUNNR = IT_DATA-KUNNR .
IT_DATA3-LFDAT = IT_DATA-LFDAT .
IT_DATA3-MATNR = IT_DATA2-MATNR .
IT_DATA3-LFIMG = IT_DATA2-LFIMG .
IT_DATA3-BWART = IT_DATA2-BWART .
APPEND IT_DATA3 .
endloop.
endloop.

Hope this solve ur problem.

Vasanth

Read only

Former Member
0 Likes
711

See the code and do not write the select query within loop,just use join for both likp and lips table

SELECT * FROM LIKP

INTO CORRESPONDING FIELDS OF TABLE IT_DATA

WHERE LFDAT IN S_LFDAT .

LOOP AT IT_DATA .

SELECT * FROM LIPS INTO CORRESPONDING FIELDS OF IT_DATA2

WHERE VBELN = IT_DATA-VBELN AND

MATNR IN S_MATNR AND

WERKS IN S_WERKS AND

( BWART IN S_BWARTO OR

BWART IN S_BWARTI ) .

loop at it_data2.

IT_DATA3-VBELN = IT_DATA-VBELN .

IT_DATA3-KUNNR = IT_DATA-KUNNR .

IT_DATA3-LFDAT = IT_DATA-LFDAT .

IT_DATA3-MATNR = IT_DATA2-MATNR .

IT_DATA3-LFIMG = IT_DATA2-LFIMG .

IT_DATA3-BWART = IT_DATA2-BWART .

APPEND IT_DATA3 .

endloop.

ENDLOOP .

Read only

Former Member
0 Likes
712

Hi ...friend here is your Qurey just cut and paste <b>it was working </b> ... i did cnahges for you ...

REPORT  ZAASD.

tables  :   likp , lips  .

data :  begin of  IT_DATA occurs  0 .
include  structure    likp  .
data :  end of iT_DATA .

data :  begin of  IT_DATA2    occurs  0.
include  structure    lips  .
data :  end of iT_DATA2 .

select-options  :  S_LFDAT  for   likp-LFDAT,
S_MATNR  for LIPS-matnr ,
S_WERKS for LIPS-werks ,
S_BWARTO for LIPS-bwart ,
S_BWARTI for LIPS-bwart .

data :begin of it_data3  occurs  0  ,
VBELN like likp-VBELN ,
KUNNR like likp-KUNNR ,
LFDAT like likp-LFDAT ,
MATNR like LIPS-MATNR ,
LFIMG like LIPS-LFIMG ,
BWART like LIPS-BWART,
end of it_data3 .

SELECT * FROM LIKP INTO CORRESPONDING FIELDS OF TABLE IT_DATA
WHERE LFDAT IN S_LFDAT .

LOOP AT IT_DATA .
SELECT * FROM LIPS INTO CORRESPONDING FIELDS OF IT_DATA2 WHERE VBELN = IT_DATA-VBELN AND
                                                              MATNR IN S_MATNR AND
                                                              WERKS IN S_WERKS AND
                                                              ( BWART IN S_BWARTO OR
                                                              BWART IN S_BWARTI ) .


IT_DATA3-VBELN = IT_DATA-VBELN .
IT_DATA3-KUNNR = IT_DATA-KUNNR .
IT_DATA3-LFDAT = IT_DATA-LFDAT .
IT_DATA3-MATNR = IT_DATA2-MATNR .
IT_DATA3-LFIMG = IT_DATA2-LFIMG .
IT_DATA3-BWART = IT_DATA2-BWART .
APPEND IT_DATA3 .

ENDSELECT .
ENDLOOP .


loop  at it_data3 .

write : / IT_DATA3-VBELN ,
IT_DATA3-KUNNR ,
IT_DATA3-LFDAT ,
IT_DATA3-MATNR ,
IT_DATA3-LFIMG ,
IT_DATA3-BWART .
endloop.

reward points if it is usefull ....

Girish

Read only

Former Member
0 Likes
711

Hi,

Dont use selct * into corresponding fields..

Dont use select inside loop. you can use for all entries instead..

Use work areas.

Put a break point (CTRLSHIFTF12) on the first select and check the internal tables in debug mode..

you will come to know the reason..

regards,

nazeer

Read only

Former Member
0 Likes
711

Hi,

The error lies in

LOOP AT IT_DATA .

SELECT * FROM LIPS INTO CORRESPONDING FIELDS OF IT_DATA2

WHERE VBELN = IT_DATA-VBELN AND

MATNR IN S_MATNR AND

WERKS IN S_WERKS AND

( BWART IN S_BWARTO OR

BWART IN S_BWARTI ) .

IT_DATA3-VBELN = IT_DATA-VBELN .

IT_DATA3-KUNNR = IT_DATA-KUNNR .

IT_DATA3-LFDAT = IT_DATA-LFDAT .

IT_DATA3-MATNR = IT_DATA2-MATNR .

IT_DATA3-LFIMG = IT_DATA2-LFIMG .

IT_DATA3-BWART = IT_DATA2-BWART

You have filled the table itab2,but without looping it there is no way you can asign its values to fields.

IT_DATA3-MATNR = IT_DATA2-MATNR .

IT_DATA3-LFIMG = IT_DATA2-LFIMG .

IT_DATA3-BWART = IT_DATA2-BWART .

In order to fill these fields you have to again loop at itab2.

Hope it was useful.

Thanks,

Sandeep.

Read only

Clemenss
Active Contributor
0 Likes
711

Hi Neno,

I'm quite convinced something's wrong with data - otherwise you should get something.

Anyway: Use join and required fields to speed up process


select LIKP~VBELN LIKP~KUNNR LIKP~LFDAT MATNR LFIMG BWART
  into corresponding fields of table IT_DATA3 []
  from lips join likp on likp~vbeln = lips on likp~vbeln
  WHERE MATNR IN S_MATNR 
    AND  WERKS IN S_WERKS
    AND  ( BWART IN S_BWARTO OR   BWART IN S_BWARTI ) .

Regards,

Clemens

Read only

Former Member
0 Likes
711

It mast be some problem with data .

Wery helpfull answers . You give me many ideas .

If I forget to revard points to somebady, plese excuse me.

I will find it and do it another time .

THANK YOU ALL VERY MUCH FOR YOUR TIME