‎2008 Apr 16 6:07 AM
Hi SAP gurus,
I need to perform a select query on my DB table.
The "where" criteria of this query will access a field of this DB table which is generated dynamically.
The table is not dynamically generated but the field is..
How do I write my query?
Regards,
Gayathri
‎2008 Apr 16 7:01 AM
hi,
here is a simple program which gets the table field name dynamically...
for spfli table .... table name is fixed here
PARAMETERS:p_input(20) TYPE c,
p_input1(20) TYPE c,
p_input2(20) TYPE c.
FIELD-SYMBOLS <fs> TYPE ANY.
FIELD-SYMBOLS <fs1> TYPE ANY.
FIELD-SYMBOLS <fs2> TYPE ANY.
DATA:BEGIN OF fs_struct,
input(20) TYPE c,
input1(20) TYPE c,
input2(20) TYPE c,
END OF fs_struct.
DATA:t_spfli LIKE TABLE OF spfli WITH HEADER LINE.
fs_struct-input = p_input.
fs_struct-input1 = p_input1.
fs_struct-input2 = p_input2.
SELECT (fs_struct)
INTO CORRESPONDING FIELDS OF
table t_spfli FROM spfli.
write:/ p_input,p_input1,p_input2.
LOOP AT t_spfli.
ASSIGN COMPONENT p_input OF STRUCTURE t_spfli TO <fs>.
ASSIGN COMPONENT p_input1 OF STRUCTURE t_spfli TO <fs1>.
ASSIGN COMPONENT p_input2 OF STRUCTURE t_spfli TO <fs2>.
IF <fs> IS ASSIGNED OR <fs1> IS ASSIGNED OR <fs2> IS ASSIGNED.
WRITE: / <fs>,24 <fs1>, 45 <fs2>.
ENDIF.
ENDLOOP.
Regards,
priya
Edited by: Banupriya R on Apr 16, 2008 8:02 AM
‎2008 Apr 16 6:38 AM
Hi,
The solution to your problem is that you will have to work with FIELD-SYMBOLS
Regards
‎2008 Apr 16 7:01 AM
hi
can u plz provide the code that at which point the dynamic field is geting generated
‎2008 Apr 16 7:01 AM
hi,
here is a simple program which gets the table field name dynamically...
for spfli table .... table name is fixed here
PARAMETERS:p_input(20) TYPE c,
p_input1(20) TYPE c,
p_input2(20) TYPE c.
FIELD-SYMBOLS <fs> TYPE ANY.
FIELD-SYMBOLS <fs1> TYPE ANY.
FIELD-SYMBOLS <fs2> TYPE ANY.
DATA:BEGIN OF fs_struct,
input(20) TYPE c,
input1(20) TYPE c,
input2(20) TYPE c,
END OF fs_struct.
DATA:t_spfli LIKE TABLE OF spfli WITH HEADER LINE.
fs_struct-input = p_input.
fs_struct-input1 = p_input1.
fs_struct-input2 = p_input2.
SELECT (fs_struct)
INTO CORRESPONDING FIELDS OF
table t_spfli FROM spfli.
write:/ p_input,p_input1,p_input2.
LOOP AT t_spfli.
ASSIGN COMPONENT p_input OF STRUCTURE t_spfli TO <fs>.
ASSIGN COMPONENT p_input1 OF STRUCTURE t_spfli TO <fs1>.
ASSIGN COMPONENT p_input2 OF STRUCTURE t_spfli TO <fs2>.
IF <fs> IS ASSIGNED OR <fs1> IS ASSIGNED OR <fs2> IS ASSIGNED.
WRITE: / <fs>,24 <fs1>, 45 <fs2>.
ENDIF.
ENDLOOP.
Regards,
priya
Edited by: Banupriya R on Apr 16, 2008 8:02 AM
‎2008 Apr 16 9:14 AM