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

Passing a variable to select statement

Former Member
0 Likes
4,207

Hi there,

I have a selection screen on which you can choose which table do you want to display.

I store the name of the selected table in a variable tab_name.

I want to use something like that:

data: tab_name(40).

.

.

.

select * from tab_name

into gt_master.

endselect.

But it did not allowed because tab_name is not a database table.

Is it possible to pass the table name in a select statement using a variable?

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
1,949

Hello

Yes it is posible you can use a dynamic select...

Try this:

DATA tabname(10).

DATA: BEGIN OF wa,

id TYPE scustom-id,

name TYPE scustom-name,

END OF wa.

tabname = 'SCUSTOM'.

SELECT id name INTO CORRESPONDING FIELDS OF wa FROM (tabname).

WRITE: / wa-id, wa-name.

ENDSELECT.

or

CONSTANTS: flight_tab_name(30) VALUE 'SPFLI'.

DATA: from_clause TYPE STRING.

DATA: BEGIN OF wa,

name(20) TYPE C,

connid TYPE spfli-connid,

END OF wa.

CONCATENATE flight_tab_name ' AS t1'

' JOIN scarr AS t2 ON t1carrid = t2carrid'

INTO from_clause.

SELECT t1connid t2carrname AS name

FROM (from_clause)

INTO CORRESPONDING FIELDS OF wa.

WRITE: / wa-name, wa-connid.

ENDSELECT

Hope this helps

Gabriel

6 REPLIES 6
Read only

Former Member
0 Likes
1,950

Hello

Yes it is posible you can use a dynamic select...

Try this:

DATA tabname(10).

DATA: BEGIN OF wa,

id TYPE scustom-id,

name TYPE scustom-name,

END OF wa.

tabname = 'SCUSTOM'.

SELECT id name INTO CORRESPONDING FIELDS OF wa FROM (tabname).

WRITE: / wa-id, wa-name.

ENDSELECT.

or

CONSTANTS: flight_tab_name(30) VALUE 'SPFLI'.

DATA: from_clause TYPE STRING.

DATA: BEGIN OF wa,

name(20) TYPE C,

connid TYPE spfli-connid,

END OF wa.

CONCATENATE flight_tab_name ' AS t1'

' JOIN scarr AS t2 ON t1carrid = t2carrid'

INTO from_clause.

SELECT t1connid t2carrname AS name

FROM (from_clause)

INTO CORRESPONDING FIELDS OF wa.

WRITE: / wa-name, wa-connid.

ENDSELECT

Hope this helps

Gabriel

Read only

Former Member
0 Likes
1,949

this is not possilbe.

alternative :

put selects on different tables inside IF conditions.

Based on the value of your selection screen field tab_name,

fetch the data from the appropriate table

Read only

Pawan_Kesari
Active Contributor
0 Likes
1,949

CREATE DATA itab TYPE STANDARD TABLE OF (tab_name). 

SELECT * 
INTO TABLE itab
FROM (tab_name) .

Message was edited by:

Pawan Kesari

Read only

Former Member
0 Likes
1,949

SELECT * FROM (p_table)

into <internal table>.

Read only

0 Likes
1,949

Flawless Code

PARAMETERS: p_tab(40) TYPE c.

DATA         : lt_data   TYPE REF TO data.
FIELD-SYMBOLS: <table>  TYPE STANDARD TABLE.

CREATE DATA lt_data TYPE STANDARD TABLE OF (p_tab).

ASSIGN lt_data->* TO <table>.

SELECT * INTO TABLE <table> FROM (p_tab) .

Read only

former_member194669
Active Contributor
0 Likes
1,949

Hi,

Use fm RFC_GET_TABLE_ENTRIES or RFC_READ_TABLE.

aRs