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

abap select statement.

Former Member
0 Likes
1,226

I have internal table below

TYPES : BEGIN OF st_final,

partner LIKE but000-partner,

adr_kind LIKE but021-adr_kind,

addrnumber LIKE adrc-addrnumber,

END OF st_final.

DATA : it_final TYPE TABLE OF st_final,

wa_final LIKE LINE OF it_final.

SELECT partner

adr_kind

addrnumber

FROM but021

INTO CORRESPONDING FIELDS OF TABLE it_final

FOR ALL ENTRIES IN it_but100

WHERE partner = it_but100-partner.

after above statement when i am giving below sql statement i am getting error as

"unknown column name standard, not determined until runtime, you cannot specify a field list.

SELECT partner

'STANDARD' as adr_kind

addrnumber

FROM but020

APPENDING CORRESPONDING FIELDS OF TABLE it_final

FOR ALL ENTRIES IN it_but100

WHERE partner = it_but100-partner.

actually i dont want to keep adr_kind field blank. since but020 dont have adr_kind field, i want to put there 'STANDARD' word instead of blank.

actually in oracle pl/sql alias like this is supported. but here it is not working

Pls help

Regards,

Santosh

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
881

Hi Santosh,

modify the internal table this way..it would work......



TYPES : BEGIN OF st_final,
partner LIKE but000-partner,
adr_kind LIKE but021-adr_kind,
addrnumber LIKE adrc-addrnumber,
END OF st_final.

DATA : it_final TYPE TABLE OF st_final,
wa_final LIKE LINE OF it_final.

SELECT partner
adr_kind
addrnumber
FROM but021
INTO CORRESPONDING FIELDS OF TABLE it_final
FOR ALL ENTRIES IN it_but100
WHERE partner = it_but100-partner.

st_final-adr_kind = 'STANDARD'. 
modify it_final from st_final
                     transporting adr_kind
                     where adr_kind is initial.

Regards,

Mdi.Deeba

6 REPLIES 6
Read only

Former Member
0 Likes
881
SELECT partner
addrnumber
FROM but020
APPENDING CORRESPONDING FIELDS OF TABLE it_final
FOR ALL ENTRIES IN it_but100
WHERE partner = it_but100-partner.

Remove 'Standard' as ... Oracle statement doesnt work literally in SAP.

Best regards,

Prashant

Read only

Former Member
0 Likes
881

hi,

Your purpose can be achieved in this way.

SELECT partner
adr_kind
addrnumber
FROM but021
INTO CORRESPONDING FIELDS OF TABLE it_final
FOR ALL ENTRIES IN it_but100
WHERE partner = it_but100-partner.

SELECT partner
addrnumber
FROM but020
APPENDING CORRESPONDING FIELDS OF TABLE it_final
FOR ALL ENTRIES IN it_but100
WHERE partner = it_but100-partner.

loop at it_final.
if it_final-adr_kind is initial.
it_final-adr_kind = 'STANDARD'.
MODIFY TABLE IT_FINAL FROM IT_FINAL TRANSPORTING ADR_KIND. 
endif.
endloop.

Thanks

Sharath

Read only

Former Member
0 Likes
881

do:

SELECT partner

addrnumber

FROM but020

APPENDING CORRESPONDING FIELDS OF TABLE it_final

FOR ALL ENTRIES IN it_but100

WHERE partner = it_but100-partner.

loop at it_final into wa_final where adr_kind is initial.

wa_final-adr_kind = 'STANDARD'.

modify it_final from wa_final.

endloop.

Read only

Former Member
0 Likes
881

Hi,

Dont select the adr_kind field in your select query,then it will work.

Regards,

jaya

Read only

Former Member
0 Likes
881

hi.....

I HAVE CHECKED IT AND PROVIDING YOU WITH WORKING CODE

this statement

SELECT partner

'STANDARD' as adr_kind * is not supported as open sql in sap

addrnumber

FROM but020

APPENDING CORRESPONDING FIELDS OF TABLE it_final

FOR ALL ENTRIES IN it_but100

WHERE partner = it_but100-partner.

so you can go like

SELECT partner

adr_kind

addrnumber

FROM but020

APPENDING CORRESPONDING FIELDS OF TABLE it_final

FOR ALL ENTRIES IN it_but100

WHERE partner = it_but100-partner.

and then

loop at it_final.

if it_final-adr_kind is initial.

it_final-adr_kind = 'STANDARD'.

MODIFY TABLE IT_FINAL FROM IT_FINAL TRANSPORTING ADR_KIND.

endif.

endloop.

regards

Read only

Former Member
0 Likes
882

Hi Santosh,

modify the internal table this way..it would work......



TYPES : BEGIN OF st_final,
partner LIKE but000-partner,
adr_kind LIKE but021-adr_kind,
addrnumber LIKE adrc-addrnumber,
END OF st_final.

DATA : it_final TYPE TABLE OF st_final,
wa_final LIKE LINE OF it_final.

SELECT partner
adr_kind
addrnumber
FROM but021
INTO CORRESPONDING FIELDS OF TABLE it_final
FOR ALL ENTRIES IN it_but100
WHERE partner = it_but100-partner.

st_final-adr_kind = 'STANDARD'. 
modify it_final from st_final
                     transporting adr_kind
                     where adr_kind is initial.

Regards,

Mdi.Deeba