2008 Feb 05 10:05 AM
Hi SDN,
I want pass a table name & key filed dynamically in the selection screen how to write select query i.e. dynamic select query.
select * from (tabname) into <fs_tab>
where ...
please suggest how to get the key field here..
Regards.
Rahul
2008 Feb 05 10:09 AM
Hi Rahul,
Try this.... You can try this using Dynamic Internal tables...
try this link...
http://www.sap-img.com/ab030.htm
Regards,
Jayant Sahu.
2008 Feb 05 10:09 AM
Hi,
Please find the sample code , may help you in better understanding
DATA: it_zirhdr TYPE TABLE OF zirhdr,
wa_zirhdr LIKE LINE OF it_zirhdr,
it_zirphist TYPE TABLE OF zirphist,
wa_zirphist LIKE LINE OF it_zirphist,
it_zirpax TYPE TABLE OF zirpax,
wa_zirpax LIKE LINE OF it_zirpax,
it_zirobj TYPE TABLE OF zirobj,
wa_zirobj LIKE LINE OF it_zirobj,
it_zirsvc TYPE TABLE OF zirsvc,
wa_zirsvc LIKE LINE OF it_zirsvc,
trow TYPE TABLE OF char72,
rrow TYPE char72,
rind TYPE i,
wa_date TYPE zidate.
CONSTANTS: char_ok TYPE char2 VALUE 'OK',
char_ca TYPE char2 VALUE 'CA',
char_x TYPE char1 VALUE 'X'.
CLEAR: trow,
t_zirhdr,
t_zirphist,
t_zirpax,
t_zirobj,
it_zirpax,
it_zirphist,
it_zirhdr,
it_zirobj.
IF NOT yisdunn_sel-zisonr IS INITIAL.
rrow = 'ZISONR EQ YISDUNN_SEL-ZISONR'.
APPEND rrow TO trow.
ADD 1 TO rind.
ENDIF.
IF yisdunn_sel-zistatus IS INITIAL.
rrow = 'AND ( ZIBOOKSTA EQ CHAR_OK'.
APPEND rrow TO trow.
ADD 1 TO rind.
rrow = 'OR ZIBOOKSTA EQ CHAR_CA ) '.
APPEND rrow TO trow.
ADD 1 TO rind.
ELSE.
IF yisdunn_sel-zistatus = char_ok.
rrow = 'AND ZIBOOKSTA EQ CHAR_OK'.
APPEND rrow TO trow.
ADD 1 TO rind.
ELSE.
rrow = 'AND ZIBOOKSTA EQ CHAR_CA'.
APPEND rrow TO trow.
ADD 1 TO rind.
ENDIF.
ENDIF.
IF yisdunn_sel-zicustpart = 'P'.
rrow = 'AND ZIRINKASSO EQ CHAR_X'.
APPEND rrow TO trow.
ADD 1 TO rind.
ENDIF.
IF yisdunn_sel-zicustpart = 'C'.
rrow = 'AND ZICINKASSO EQ CHAR_X'.
APPEND rrow TO trow.
ADD 1 TO rind.
ENDIF.
SELECT * FROM zirhdr
INTO TABLE it_zirhdr
WHERE (trow)
ORDER BY PRIMARY KEY.Regards
Bala.M
2008 Feb 05 10:09 AM
Hi Rahul,
Try this.... You can try this using Dynamic Internal tables...
try this link...
http://www.sap-img.com/ab030.htm
Regards,
Jayant Sahu.
2008 Feb 05 10:58 AM
Hi Dude,
In a select query key fields can be included dynamically
as in the below code:
PARAMETERS:
WHERECL1(72) DEFAULT COUNTRY = USA ,
WHERECL2(3) DEFAULT OR,
WHERECL3(72) DEFAULT COUNTRY = GB .
TYPE: BEGIN OF ITAB_RECORD, TEXT(72),
END OF ITAB_RECORD.
DATA: WHERE_ITAB TYPE STANDARD TABLE OF ITAB_RECORD INITIAL SIZE 3 WITH HEADER LINE.
WHERE_ITAB-TEXT = WHERECL1.
APPEND WHERE_ITAB.
WHERE_ITAB-TEXT = WHERECL2.
APPEND WHERE_ITAB.
WHERE_ITAB-TEXT = WHERECL3.
APPEND WHERE_ITAB.
SELECT * FROM TABNA WHERE (WHERE_ITAB).
WRITE: / TABNA-COUNTRY, TABNA-ID.
ENDSELECT.
Table names can be included dynamically as below:
tables: tab1.
PARAMETERS: TAB_NAME(10) default 'tab1'.
DATA: TABLE_LINE(240).
SELECT * FROM (TAB_NAME) INTO TABLE_LINE.
WRITE: / TABLE_LINE.
ENDSELECT.
Note: Only the Table names included in the tables statement can be selected at run-time.Also,the size of TABLE_LINE should be capable of holding the selected records.
Failing to meet both conditions will result in syntax error.
Please reward if useful.
Thanks & Regards,
Lakshmanan