‎2009 Mar 17 5:08 AM
Hi,
Is it possible to select from a variable table? where <database> can be any table.
Ex.
SELECT field1 FROM <database>.
‎2009 Mar 17 5:12 AM
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.
‎2009 Mar 17 5:12 AM
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.
‎2009 Mar 17 5:12 AM
Yes it is possible.
If you search in SDN for key words dynamic select , you will get lots of sample codes.
Mathews
‎2009 Mar 17 5:14 AM
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
‎2009 Mar 17 5:14 AM
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
‎2009 Mar 17 5:14 AM
‎2009 Mar 17 5:15 AM
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.