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

Dynamic Subselect?

ortwin_cramer
Discoverer
0 Likes
822

Hi,

i got an error that the format of the statement isn't correct. How can i solve this problem using dynamic select AND subselect?

data: column_stmt type string,
        from_stmt type string,
        where_stmt type string.

column_stmt = 'ko~aufnr ko~plnbez po~psmng po~amein po~wemng ko~gstri ko~gsuzi ko~gstrs ko~gltrs kt~maktx'.

from_stmt = 'afko AS ko'
            & ' INNER JOIN afpo AS po ON ko~aufnr = po~aufnr'
            & ' INNER JOIN aufk AS fk ON ko~aufnr = fk~aufnr'
            & ' INNER JOIN makt AS kt ON ko~plnbez = kt~matnr'.


where_stmt  = 'kt~spras = sy-langu'
              & 'AND po~posnr = ('
              & '   SELECT MIN( posnr ) FROM afpo'
              & '   WHERE aufnr = ko~aufnr'
              & ')'.

SELECT (column_stmt)
  FROM (from_stmt)
  INTO CORRESPONDING FIELDS OF TABLE re_results
  WHERE (where_stmt)

Thanks for help,

O. Cramer

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
787
data: column_stmt type string,
        from_stmt type string,
        where_stmt type string.
 
column_stmt = 'ko~aufnr ko~plnbez po~psmng po~amein po~wemng ko~gstri ko~gsuzi ko~gstrs ko~gltrs kt~maktx'.
 
from_stmt = 'afko AS ko'
            & ' INNER JOIN afpo AS po ON ko~aufnr = po~aufnr'
            & ' INNER JOIN aufk AS fk ON ko~aufnr = fk~aufnr'
            & ' INNER JOIN makt AS kt ON ko~plnbez = kt~matnr'.
 
 
where_stmt  = 'kt~spras = sy-langu'
              & *' AND* po~posnr = *( *'
              & '   SELECT MIN( posnr ) FROM afpo'
              & '   WHERE aufnr = ko~aufnr'
              & ' * )'*.
 
SELECT (column_stmt)
  FROM (from_stmt)
  INTO CORRESPONDING FIELDS OF TABLE re_results
  WHERE (where_stmt)
6 REPLIES 6
Read only

Former Member
0 Likes
788
data: column_stmt type string,
        from_stmt type string,
        where_stmt type string.
 
column_stmt = 'ko~aufnr ko~plnbez po~psmng po~amein po~wemng ko~gstri ko~gsuzi ko~gstrs ko~gltrs kt~maktx'.
 
from_stmt = 'afko AS ko'
            & ' INNER JOIN afpo AS po ON ko~aufnr = po~aufnr'
            & ' INNER JOIN aufk AS fk ON ko~aufnr = fk~aufnr'
            & ' INNER JOIN makt AS kt ON ko~plnbez = kt~matnr'.
 
 
where_stmt  = 'kt~spras = sy-langu'
              & *' AND* po~posnr = *( *'
              & '   SELECT MIN( posnr ) FROM afpo'
              & '   WHERE aufnr = ko~aufnr'
              & ' * )'*.
 
SELECT (column_stmt)
  FROM (from_stmt)
  INTO CORRESPONDING FIELDS OF TABLE re_results
  WHERE (where_stmt)
Read only

ortwin_cramer
Discoverer
0 Likes
787

Sorry but's still not working. Whats the purpose of the * ?

Read only

Former Member
0 Likes
787

where_stmt = 'kt~spras = sy-langu'

& 'AND po~posnr = ('

& ' SELECT MIN( posnr ) FROM afpo'

& ' WHERE aufnr = ko~aufnr'

& ')'.

give space before and after brackets

where_stmt = 'kt~spras = sy-langu'

& ' AND po~posnr = ( '

& ' SELECT MIN( posnr ) FROM afpo'

& ' WHERE aufnr = ko~aufnr'

& ' ) '.

Read only

ortwin_cramer
Discoverer
0 Likes
787

It doesn't helped. Same problem. With a fixed value list in place of subselect it's working. Only the SELECT is leading to an error. Instead of '=' i've tried IN, ANY, EXISTS...

Read only

Former Member
0 Likes
787

give space before and after brackets only at * it will work. i have checked up.

where_stmt = 'kt~spras = sy-langu'

& ' AND po~posnr = *(* '

& ' SELECT MIN( posnr ) FROM afpo'

& ' WHERE aufnr = ko~aufnr'

& ' *)* '.

Edited by: venu gopal on May 29, 2009 11:40 AM

Read only

ortwin_cramer
Discoverer
0 Likes
787

Error message:

A condition specified at runtime has an unexpected format.

where_stmt  = 'kt~spras = sy-langu'
            & ' AND po~posnr = ( '
            & ' SELECT MIN( posnr ) FROM afpo'
            & ' WHERE aufnr = ko~aufnr'
            & ' ) '.

Maybe there is a setting allowing it in your system?