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

Error at u0130nner Join Tables

Former Member
0 Likes
699

Hi everyone;

Today I am working at a select operations.I am writing selct-options and I am merging three fields in an internal table.

İnternal Table is :

data: begin of gt_data3 OCCURS 0,
        matnr like mara-matnr,
        ersda like mara-ersda,
        ernam like mara-ernam,
        laeda like mara-laeda,
        aenam like mara-aenam,
        matkl like mara-matkl,
        mblnr like mseg-mblnr,
        mjahr like mseg-mjahr,
        zeile like mseg-zeile,
        werks like mseg-werks,
        waers like mseg-waers,
        spras like makt-spras,
        maktx like makt-maktx,
        maktg like makt-maktg,
       end of gt_data3.

According user selects ALV shows the field-values.

I wrote a sql command.

This command is :

select m~matnr m~ersda m~ernam m~laeda m~aenam
              m~matkl g~mblnr g~mjahr g~zeile g~werks
              g~waers k~spras k~maktx k~maktg
                  into CORRESPONDING FIELDS OF table gt_data3
                  from  mara as m inner join mseg as g
                                 on m~matnr eq g~matnr
                         inner join makt as k on k~matnr eq g~matnr
                         where  m~matnr IN s_matnr.
                         and    g~mblnr IN s_mblnr
                         and    k~spras IN s_spras.

when the compiler pass the where statement there comprise an error.

This error is "The IN operator with "s_matnr" is followed neither by an internal table nor by a value list."

How can I solver this problem?

Edited by: Thomas Zloch on Oct 21, 2010 4:45 PM - please use code tags!

Hi everyone;

Today I am working at a select operations.I am writing selct-options and I am merging three fields in an internal table.

İnternal Table is :

data: begin of gt_data3 OCCURS 0,
        matnr like mara-matnr,
        ersda like mara-ersda,
        ernam like mara-ernam,
        laeda like mara-laeda,
        aenam like mara-aenam,
        matkl like mara-matkl,
        mblnr like mseg-mblnr,
        mjahr like mseg-mjahr,
        zeile like mseg-zeile,
        werks like mseg-werks,
        waers like mseg-waers,
        spras like makt-spras,
        maktx like makt-maktx,
        maktg like makt-maktg,
       end of gt_data3.

According user selects ALV shows the field-values.

I wrote a sql command.

This command is :

select m~matnr m~ersda m~ernam m~laeda m~aenam
              m~matkl g~mblnr g~mjahr g~zeile g~werks
              g~waers k~spras k~maktx k~maktg
                  into CORRESPONDING FIELDS OF table gt_data3
                  from  mara as m inner join mseg as g
                                 on m~matnr eq g~matnr
                         inner join makt as k on k~matnr eq g~matnr
                         where  m~matnr IN s_matnr.
                         and    g~mblnr IN s_mblnr
                         and    k~spras IN s_spras.

when the compiler pass the where statement there comprise an error.

This error is "The IN operator with "s_matnr" is followed neither by an internal table nor by a value list."

How can I solver this problem?

Edited by: Thomas Zloch on Oct 21, 2010 4:45 PM - please use code tags!

6 REPLIES 6
Read only

Sandeep_Panghal
Product and Topic Expert
Product and Topic Expert
0 Likes
667

where m~matnr IN s_matnr.->remove this full stop.

and g~mblnr IN s_mblnr

and k~spras IN s_spras.

Read only

0 Likes
667

But there is a too data when remove where statement I have to wait too long time.Me and customer's don't prefer it

Read only

0 Likes
667

I am not asking to remove the WHERE clause . just remove the '.' after s-matnr to get rid of the syntax error.

Regarding long runtime , you have to optimise your select query .

P.S : If you dont need the results in real time execute the report in background mode.

Read only

0 Likes
667

How is s_matnr declared? Is it a Select Option or Range?

Thank you,

Steven Coolbaugh

Read only

nabheetscn
SAP Champion
SAP Champion
0 Likes
667

Please provide ur declarations of parameters.

Nabheet

Read only

0 Likes
667

Here is the correct code.

DATA: BEGIN OF gt_data3 OCCURS 0,
        matnr LIKE mara-matnr,
        ersda LIKE mara-ersda,
        ernam LIKE mara-ernam,
        laeda LIKE mara-laeda,
        aenam LIKE mara-aenam,
        matkl LIKE mara-matkl,
        mblnr LIKE mseg-mblnr,
        mjahr LIKE mseg-mjahr,
        zeile LIKE mseg-zeile,
        werks LIKE mseg-werks,
        waers LIKE mseg-waers,
        spras LIKE makt-spras,
        maktx LIKE makt-maktx,
        maktg LIKE makt-maktg,
       END OF gt_data3.
TABLES:mara,mseg,makt.
SELECT-OPTIONS: s_matnr FOR mara-matnr,
                s_mblnr FOR mseg-mblnr,
                s_spras FOR makt-spras.

START-OF-SELECTION.

  SELECT m~matnr m~ersda m~ernam m~laeda m~aenam
                m~matkl g~mblnr g~mjahr g~zeile g~werks
                g~waers k~spras k~maktx k~maktg
                    INTO CORRESPONDING FIELDS OF TABLE gt_data3
                    FROM  mara AS m INNER JOIN mseg AS g
                                   ON m~matnr EQ g~matnr
                           INNER JOIN makt AS k ON k~matnr EQ g~matnr
                           WHERE  m~matnr IN s_matnr
                           AND    g~mblnr IN s_mblnr
                           AND    k~spras IN s_spras.