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

Re: Select statement query

Former Member
0 Likes
1,962

Hi Expert,

I have one report which display employee transfer details In that report i have added two new fields i.e Action type and Reason for Action.My requirement is in the selection screen i have given date.What ever date i have given in the selection screen it should fetch the data of employee transfer I have written the code but in the output the field which i have added

two fied i.e Action type and Reason for action data is not comming for this two fields.

Below is my code .

loop at p0000 where pernr = i_transfers-pernr and massn eq '02'.

i_transfers-massg = p0000-massg.

select single * from t530t into ls_t530t where massn eq '02' AND massg = i_transfers-massg AND sprsl = 'E'.

if sy-subrc = 0.

i_transfers-mgtxt = ls_t530t-mgtxt.

endif.

endloop.

Regards,

Mdaddu.

1 ACCEPTED SOLUTION
Read only

deepak_dhamat
Active Contributor
0 Likes
1,923

Hi

loop at p0000 where pernr = i_transfers-pernr and massn eq '02'.
i_transfers-massg = p0000-massg.

select single * from t530t into ls_t530t where massn eq '02' AND massg = i_transfers-massg AND sprsl = 'E'.

if sy-subrc = 0.
i_transfers-mgtxt = ls_t530t-mgtxt.
endif.
endloop.

In above code if u r moving data in table i_transfers then you ahve to append that table

like below code

loop at p0000 where pernr = i_transfers-pernr and massn eq '02'.
i_transfers-massg = p0000-massg.

select single * from t530t into ls_t530t where massn eq '02' AND massg = i_transfers-massg AND sprsl = 'E'.

if sy-subrc = 0.
i_transfers-mgtxt = ls_t530t-mgtxt.
endif.
append  i_transfers .
clear i_transfers .

endloop.

regards

Deepak.

16 REPLIES 16
Read only

deepak_dhamat
Active Contributor
0 Likes
1,924

Hi

loop at p0000 where pernr = i_transfers-pernr and massn eq '02'.
i_transfers-massg = p0000-massg.

select single * from t530t into ls_t530t where massn eq '02' AND massg = i_transfers-massg AND sprsl = 'E'.

if sy-subrc = 0.
i_transfers-mgtxt = ls_t530t-mgtxt.
endif.
endloop.

In above code if u r moving data in table i_transfers then you ahve to append that table

like below code

loop at p0000 where pernr = i_transfers-pernr and massn eq '02'.
i_transfers-massg = p0000-massg.

select single * from t530t into ls_t530t where massn eq '02' AND massg = i_transfers-massg AND sprsl = 'E'.

if sy-subrc = 0.
i_transfers-mgtxt = ls_t530t-mgtxt.
endif.
append  i_transfers .
clear i_transfers .

endloop.

regards

Deepak.

Read only

0 Likes
1,923

Hi Depak,

I have append as per your suggestion still data is not appearing for that two fields.

Can you suggest me what i have to do in the code.

loop at p0000 where pernr = i_transfers-pernr and massn eq '02'.

i_transfers-massg = p0000-massg.

select single * from t530t into ls_t530t where massn eq '02' AND massg = i_transfers-massg AND sprsl = 'E'.

if sy-subrc = 0.

i_transfers-mgtxt = ls_t530t-mgtxt.

endif.

append i_transfers.

clear i_transfers.

endloop.

Regards,

Mdaddu.

Read only

0 Likes
1,923

Hi ,

Tell me ur final internal table which u are using for display .

Because table you are using is different for display and u r modifying different table .

regards

Deepak.

Edited by: Deepak Dhamat on Aug 20, 2011 11:51 AM

Read only

0 Likes
1,923

Hi Deepak,

My final internal table is I_TRANSFERS.

The below is my total code.

LOOP AT I_TRANSFERS.

V_SERIAL_NO = V_SERIAL_NO + 1.

I_TRANSFERS-SRNO = V_SERIAL_NO.

SELECT SINGLE NAME1 FROM T500P INTO I_TRANSFERS-WERKSTXT

WHERE PERSA = I_TRANSFERS-WERKS.

SELECT SINGLE NAME1 FROM T500P INTO I_TRANSFERS-OLD_WERKSTXT

WHERE PERSA = I_TRANSFERS-OLD_WERKS.

SELECT SINGLE BTEXT FROM T001P INTO I_TRANSFERS-BTRTLTXT

WHERE BTRTL = I_TRANSFERS-BTRTL.

SELECT SINGLE BTEXT FROM T001P INTO I_TRANSFERS-OLD_BTRTLTXT

WHERE BTRTL = I_TRANSFERS-OLD_BTRTL.

SELECT SINGLE LTEXT FROM CSKT INTO I_TRANSFERS-KOSTLTXT

WHERE KOSTL = I_TRANSFERS-KOSTL

AND SPRAS = 'EN'.

  • ENDSELECT.

SELECT SINGLE LTEXT FROM CSKT INTO I_TRANSFERS-OLD_KOSTLTXT

WHERE KOSTL = I_TRANSFERS-OLD_KOSTL

AND SPRAS = 'EN'.

SELECT SINGLE PLSTX FROM T528T INTO I_TRANSFERS-PLSTX

WHERE PLANS = I_TRANSFERS-PLANS

AND ENDDA = '99991231'.

  • ENDSELECT.

SELECT SINGLE ORGTX FROM T527X INTO I_TRANSFERS-OLD_ORGUNITTXT WHERE ORGEH = I_TRANSFERS-OLD_ORGUNIT.

SELECT SINGLE ORGTX FROM T527X INTO I_TRANSFERS-NEW_ORGUNITTXT WHERE ORGEH = I_TRANSFERS-NEW_ORGUNIT.

" Description for payment method

IF I_TRANSFERS-ZLSCH EQ 'C' OR I_TRANSFERS-ZLSCH EQ ' '.

I_TRANSFERS-ZLSCH = 'Cash Payment'.

ELSEIF I_TRANSFERS-ZLSCH EQ 'T'.

I_TRANSFERS-ZLSCH = 'Bank Transfers'.

ENDIF.

IF I_TRANSFERS-OLD_ZLSCH EQ 'C' OR I_TRANSFERS-OLD_ZLSCH EQ ' '.

I_TRANSFERS-OLD_ZLSCH = 'Cash Payment'.

ELSEIF I_TRANSFERS-OLD_ZLSCH EQ 'T'.

I_TRANSFERS-OLD_ZLSCH = 'Bank Transfers'.

ENDIF.

SELECT SINGLE NATIO50 FROM T005T INTO I_TRANSFERS-NATIO

WHERE LAND1 = I_TRANSFERS-NATIO

AND SPRAS = 'E'.

loop at p0000 where pernr = i_transfers-pernr and massn eq '02'.

i_transfers-massg = p0000-massg.

select single * from t530t into ls_t530t where massn eq '02' AND massg = i_transfers-massg AND sprsl = 'E'.

if sy-subrc = 0.

i_transfers-mgtxt = ls_t530t-mgtxt.

endif.

  • append i_transfers.

  • clear i_transfers.

endloop.

MODIFY I_TRANSFERS.

ENDLOOP.

Regards,

Mdaddu

Read only

0 Likes
1,923

Hi ,

Do this change .

loop at p0000 where pernr = i_transfers-pernr and massn eq '02'.

i_transfers-massg = p0000-massg.

select single * from t530t into ls_t530t where massn eq '02' AND massg = i_transfers-massg AND sprsl = 'E'.

if sy-subrc = 0.

i_transfers-mgtxt = ls_t530t-mgtxt.

endif.

endloop.

MODIFY I_TRANSFERS transporting mgtxt .

endloop.

regards

Deepak.

Read only

0 Likes
1,923

Hi ,

always after using Select Single do check SY-SUBRC .

regards

Deepak.

Read only

0 Likes
1,923

Hi Deepak,

Still my output is not comming for that two i.e Action type and Reason for Acion.

Can you please suggest me what i have to insert in the code.

Regards,

Mdaddu.

Read only

0 Likes
1,923

Hi ,

1) First check whether you are passing correct values to get those Action type and Reason for Acion using select single

2) Check whether you are getting sy-subrc = 0 and values from table

3) if you are getting values then check it gets modified to i_transfer table

4) There might be one problem i.e you are using loop at table poooo i.e how many entries are there in that table what is purpose of that table .

Because when you are looping you might have get result in mgtxt but as there may be lot of records and last record in loop might not have value in mgtxt .

if might be modifying blank in i_transfers .

YOUR STEP BY STEP DEBUGGING WILL HELP- YOU

regards

Deepak.

Read only

0 Likes
1,923

Hi Deepak,

As per you suggestion in the 4th point i am looping to table p0000 in that table data is comming for all fields except Action type and Reason for Action field.I have check in the debugging mode when it comes to my select statement it is showing sy-subrc = 4. But i have check in the backend system data is present for that employee.

Regard,

mdaddu

Read only

0 Likes
1,923

hi ,

please go to table t530t

pass values : massn = 02

massg = p0000-massg i.e actual value of that field

sprsl = 'E' .

and check whether u are getting value or not .

regards

Deepak.

Read only

0 Likes
1,923

Deepak,

I have check in the table value is there.

Regards,

Mdaddu

Read only

0 Likes
1,923

Hi ,

Please check are you getting sy-subrc = 0 for all entries of table p0000 .

Instead of using loop you can

tables : t530t .

sort poooo by pernr massn .

read table poooo with key pernr = i_transfers-pernr

massn = '02' .

if sy-subrc = 0 .

select single * from t530t

where massn = '02'

AND massg = i_transfers-massg

AND sprsl = 'E'.

if sy-subrc = 0.

i_transfers-mgtxt = t530t-mgtxt.

endif.

modify i_transfers transporting mgtxt .

endloop.

I think now this should solve your problem .

Regards

Deepak.

Read only

0 Likes
1,923

Hi Deepak,

I have added the code like this below still outptut is not comming.

LOOP AT I_TRANSFERS.

V_SERIAL_NO = V_SERIAL_NO + 1.

I_TRANSFERS-SRNO = V_SERIAL_NO.

SELECT SINGLE NAME1 FROM T500P INTO I_TRANSFERS-WERKSTXT

WHERE PERSA = I_TRANSFERS-WERKS.

SELECT SINGLE NAME1 FROM T500P INTO I_TRANSFERS-OLD_WERKSTXT

WHERE PERSA = I_TRANSFERS-OLD_WERKS.

SELECT SINGLE BTEXT FROM T001P INTO I_TRANSFERS-BTRTLTXT

WHERE BTRTL = I_TRANSFERS-BTRTL.

SELECT SINGLE BTEXT FROM T001P INTO I_TRANSFERS-OLD_BTRTLTXT

WHERE BTRTL = I_TRANSFERS-OLD_BTRTL.

SELECT SINGLE LTEXT FROM CSKT INTO I_TRANSFERS-KOSTLTXT

WHERE KOSTL = I_TRANSFERS-KOSTL

AND SPRAS = 'EN'.

  • ENDSELECT.

SELECT SINGLE LTEXT FROM CSKT INTO I_TRANSFERS-OLD_KOSTLTXT

WHERE KOSTL = I_TRANSFERS-OLD_KOSTL

AND SPRAS = 'EN'.

SELECT SINGLE PLSTX FROM T528T INTO I_TRANSFERS-PLSTX

WHERE PLANS = I_TRANSFERS-PLANS

AND ENDDA = '99991231'.

  • ENDSELECT.

SELECT SINGLE ORGTX FROM T527X INTO I_TRANSFERS-OLD_ORGUNITTXT WHERE ORGEH = I_TRANSFERS-OLD_ORGUNIT.

SELECT SINGLE ORGTX FROM T527X INTO I_TRANSFERS-NEW_ORGUNITTXT WHERE ORGEH = I_TRANSFERS-NEW_ORGUNIT.

" Description for payment method

IF I_TRANSFERS-ZLSCH EQ 'C' OR I_TRANSFERS-ZLSCH EQ ' '.

I_TRANSFERS-ZLSCH = 'Cash Payment'.

ELSEIF I_TRANSFERS-ZLSCH EQ 'T'.

I_TRANSFERS-ZLSCH = 'Bank Transfers'.

ENDIF.

IF I_TRANSFERS-OLD_ZLSCH EQ 'C' OR I_TRANSFERS-OLD_ZLSCH EQ ' '.

I_TRANSFERS-OLD_ZLSCH = 'Cash Payment'.

ELSEIF I_TRANSFERS-OLD_ZLSCH EQ 'T'.

I_TRANSFERS-OLD_ZLSCH = 'Bank Transfers'.

ENDIF.

SELECT SINGLE NATIO50 FROM T005T INTO I_TRANSFERS-NATIO

WHERE LAND1 = I_TRANSFERS-NATIO

AND SPRAS = 'E'.

sort p0000 by pernr massn.

Read table p0000 with key pernr = i_transfers-pernr

massn = '02'.

if sy-subrc = '0'.

  • loop at p0000 where pernr = i_transfers-pernr and massn eq '02'.

*

  • i_transfers-massg = p0000-massg.

*

select single * from t530t into ls_t530t where massn eq '02' AND massg = i_transfers-massg AND sprsl = 'E'.

*

if sy-subrc = 0.

i_transfers-mgtxt = ls_t530t-mgtxt.

endif.

    • append i_transfers.

    • clear i_transfers.

  • endloop.

MODIFY I_TRANSFERS transporting mgtxt.

endif.

ENDLOOP.

Regards,

Mdaddu

Read only

0 Likes
1,923

Hi ,

are u getting sy-subrc = 0 after Read table p0000 statement if yes then check for select single

i think dear you have to Debug properly step by step .

regards

deepak.

Read only

0 Likes
1,923

Deepak,

In read table p0000 i am getting sy-subrc = 0 when it come to select single statement it is fail sy-subrc = 4 it is showing.

Regards,

Mdaddu.

Read only

0 Likes
1,923

Deepak,

when reading table p0000 the sy-subrc = 0 and when reading select single statement ...............sy-subrc = 4.

Regards,

Mdaddu