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 From X Table

Former Member
0 Likes
1,011

Hi,

Is it possible to select from a variable table? where <database> can be any table.

Ex.

SELECT field1 FROM <database>.

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
974

Hi Frnd,

Yes. It is possible to select from different db table dynamically usin gthe below code.

**variables for dynamic building
*DATA: wh_codn TYPE TABLE OF char72 WITH HEADER LINE,*
      *field TYPE TABLE OF char72 WITH HEADER LINE.*
DATA: d1 LIKE sy-datum,
      date1 LIKE sy-datum,
      date2 LIKE sy-datum.

**selection screen
PARAMETER       p_tab TYPE dd02l-tabname .
SELECT-OPTIONS  s_date FOR sy-datum NO-EXTENSION MODIF ID grp.
PARAMETER       p_fname1(5) TYPE c .
SELECT-OPTIONS       s_gjahr FOR MSEG-MJAHR NO-EXTENSION MODIF ID GP1 .
PARAMETER: p_sum RADIOBUTTON GROUP gid USER-COMMAND flag,
           p_det RADIOBUTTON GROUP gid.

START-OF-SELECTION.

**dynamic building.
    IF NOT s_date-low IS INITIAL AND NOT s_date-high IS INITIAL.
      CONCATENATE  p_fname1
                   'BETWEEN'
                   s_date-low
                   'AND'
                   s_date-high
                   INTO wh_codn
                   SEPARATED BY space.
      APPEND wh_codn.
      CLEAR wh_codn.
    ELSEIF s_date-high IS INITIAL.
      CONCATENATE  p_fname1
                   'EQ'
                   s_date-low
                   INTO wh_codn
                   SEPARATED BY space.
      APPEND wh_codn.
      CLEAR wh_codn.
    ENDIF.
**field name
    field = p_fname1.
    APPEND field.
**selection
    *SELECT (field) FROM (p_tab)*
             *INTO d1*
             *WHERE  (wh_codn) .*
      itab-date = d1.
      APPEND itab.
    ENDSELECT.

**sorting
    SORT itab.
**display of records
    WRITE :/ 'Number of records in', p_tab .
    SKIP.
    ULINE.
    LOOP AT itab.
      AT END OF date.
        WRITE:/ itab-date ,
                gv_count COLOR 4.
        CLEAR gv_count.
      ENDAT.
      gv_count = gv_count + 1.
    ENDLOOP.
    ULINE.

6 REPLIES 6
Read only

Former Member
0 Likes
975

Hi Frnd,

Yes. It is possible to select from different db table dynamically usin gthe below code.

**variables for dynamic building
*DATA: wh_codn TYPE TABLE OF char72 WITH HEADER LINE,*
      *field TYPE TABLE OF char72 WITH HEADER LINE.*
DATA: d1 LIKE sy-datum,
      date1 LIKE sy-datum,
      date2 LIKE sy-datum.

**selection screen
PARAMETER       p_tab TYPE dd02l-tabname .
SELECT-OPTIONS  s_date FOR sy-datum NO-EXTENSION MODIF ID grp.
PARAMETER       p_fname1(5) TYPE c .
SELECT-OPTIONS       s_gjahr FOR MSEG-MJAHR NO-EXTENSION MODIF ID GP1 .
PARAMETER: p_sum RADIOBUTTON GROUP gid USER-COMMAND flag,
           p_det RADIOBUTTON GROUP gid.

START-OF-SELECTION.

**dynamic building.
    IF NOT s_date-low IS INITIAL AND NOT s_date-high IS INITIAL.
      CONCATENATE  p_fname1
                   'BETWEEN'
                   s_date-low
                   'AND'
                   s_date-high
                   INTO wh_codn
                   SEPARATED BY space.
      APPEND wh_codn.
      CLEAR wh_codn.
    ELSEIF s_date-high IS INITIAL.
      CONCATENATE  p_fname1
                   'EQ'
                   s_date-low
                   INTO wh_codn
                   SEPARATED BY space.
      APPEND wh_codn.
      CLEAR wh_codn.
    ENDIF.
**field name
    field = p_fname1.
    APPEND field.
**selection
    *SELECT (field) FROM (p_tab)*
             *INTO d1*
             *WHERE  (wh_codn) .*
      itab-date = d1.
      APPEND itab.
    ENDSELECT.

**sorting
    SORT itab.
**display of records
    WRITE :/ 'Number of records in', p_tab .
    SKIP.
    ULINE.
    LOOP AT itab.
      AT END OF date.
        WRITE:/ itab-date ,
                gv_count COLOR 4.
        CLEAR gv_count.
      ENDAT.
      gv_count = gv_count + 1.
    ENDLOOP.
    ULINE.

Read only

Former Member
0 Likes
974

Yes it is possible.

If you search in SDN for key words dynamic select , you will get lots of sample codes.

Mathews

Read only

Former Member
0 Likes
974

hi,

If your query is about dynamically specifying the data base table during select statement then check out the following code snippet.

PARAMETERS:
P_TABLE(10) TYPE C.

DATA:
ITAB TYPE TABLE OF CHAR255.


SELECT  *
  INTO  TABLE ITAB
  FROM  (P_TABLE).

Thanks

Sharath

Read only

Former Member
0 Likes
974

Hi,

Yes. It is possible to select from different DB table dynamically

Regards,

Jyothi CH.

Edited by: Jyothi Chinnabathuni on Mar 17, 2009 10:45 AM

Read only

former_member209217
Active Contributor
0 Likes
974

Hi Marc,

Chk this link .

which shows the usage of dynamic select statements.

Hope it will be useful.

Regards,

Lakshman.

Read only

former_member222860
Active Contributor
0 Likes
974

Hi,

yes, You can search with key-word Dynamic Table,

data: begin of itab occurs 0.
      include structure mara.
data: end of itab.      

parameters: p_tab like dd02l-tabname.

SELECT matnr from (p_tab) into table itab.