Application Development 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: 

Programming error

Former Member
0 Kudos

Hi,

I want to wrie a program using JOIN statement.

I am getting the error.

TYPES:

BEGIN OF TY_OUTPUT,

KUNNR TYPE KNA1-KUNNR,

LAND1 TYPE KNA1-LAND1,

VBELN TYPE VBAK-VBELN,

AUDAT TYPE VBAK-AUDAT,

AUART TYPE VBAK-AUART,

NETWR TYPE VBAK-NETWR,

END OF TY_OUTPUT.

DATA:

ST_OUTPUT TYPE TY_OUTPUT,

IT_OUTPUT TYPE TABLE OF TY_OUTPUT.

SELECT OPTIONS:

SKUNNR FOR ST_OUTPUT-KUNNR.

SELECT KNA1KUNNR KNA1LAND1 VBAKVBELN VBAKAUDAT VBAKAUART VBAKNETWR

FROM KNA1 AS KNA1

JOIN VBAK AS VBAK

WHERE KNA1~KUNNR IN SKUNNR.

IF SY-SUBRC EQ 0.

LOOP AT IT_OUTPUT INTO ST_OUTPUT.

WRITE:/ ST_OUTPUT.KUNNR, ST_OUTPUT.LAND1,

ST_OUTPUT_NAME1, ST_OUTPUT.VBELN,ST_OUTPUT.AUDAT,AT_OUTPUT.AUART,ST_OUTPUT.NETWR.

ENDLOOP.

Statement concluding with "...ST_OUTPUT-KUNNR" ended unexpectedly.

this is the error iam getting.

1 ACCEPTED SOLUTION

S0025444845
Active Participant
0 Kudos

hi ,

use

tables:kna1.

SELECT-OPTIONS: SKUNNR FOR kna1-KUNNR.

- between select option

regards,

sudha

11 REPLIES 11

Former Member
0 Kudos

Hi,

In select options declare as follows:

SELECT OPTIONS:

SKUNNR FOR <b>KNA1</b>-KUNNR.

hope this helps.

reward if helpful.

Regards,

Sipra

Former Member
0 Kudos

I've posted the corrected code in your earlier thread, plz look at that and close that thread.

<b>reward points if that helped.</b>

Kiran

Former Member
0 Kudos

Hi,

SELECT OPTIONS:

SKUNNR FOR ST_OUTPUT-KUNNR.

Instead of ST_OUTPUT..try this IT_OUTPUT.

IF i am not wrong....

Reward points,

Kishi.

Former Member
0 Kudos

hi,

in your join condition u didnt metion it

try like this

SELECT KNA1KUNNR KNA1LAND1 VBAKVBELN VBAKAUDAT VBAKAUART VBAKNETWR

FROM KNA1 AS KNA1

JOIN VBAK AS VBAK [ THIS IS NOT MENTIONED IN OUR CODE ]

ON KNA1KUNNR EQ VBAKKUNNR

WHERE KNA1-KUNNR IN SKUNNR.

IF SY-SUBRC EQ 0.

LOOP AT IT_OUTPUT INTO ST_OUTPUT.

WRITE:/ ST_OUTPUT.KUNNR, ST_OUTPUT.LAND1,

ST_OUTPUT_NAME1, ST_OUTPUT.VBELN,ST_OUTPUT.AUDAT,AT_OUTPUT.AUART,ST_OUTPUT.NETWR.

ENDLOOP.

IF HELPFUL REWARD SOME POINTS.

with regards,

Suresh.A

0 Kudos

Hi,

The error is at select options

Statement concluding with "...ST_OUTPUT-KUNNR" ended unexpectedly.

0 Kudos

Hi ram,

there are two solutions,

1) define TABLES KNA1. at the beginning of the program and then use,

SELECT-OPTIONS: SKUNNR FOR KNA1-KUNNR.

2) Define a variable,

DATA V_KUNNR TYPE KUNNR.

and then use that in select option as below.

SELECT-OPTIONS: SKUNNR FOR V_KUNNR.

This should solve ur problem

<b>Reward points for the solution.</b>

Kiran

0 Kudos

hI,

Field list without INTO clause is not allowed . allowed. . allowed. .

SELECT KNA1KUNNR KNA1LAND1 VBAKVBELN VBAKAUDAT VBAKAUART VBAKNETWR.. Here iam getting the error now that

Field list without INTO clause is not allowed . allowed. . allowed. .

Former Member
0 Kudos

Please post the correct code.Where u r getting the error ...In which line item of this code u r getting the error.

Coz u didnt use ON for the Join statement

ON KNA1KUNNR = VBAKKUNNR

where KNA1~KUNNR in s_kunnr

and also in the write statement u have to use ST_output-KUNNR not ST_OUTPUT.KUNNR

<b>Select-options: s_kunnr for <b>KNA1-KUNNR</b></b>

Message was edited by:

Sumi Vasu

S0025444845
Active Participant
0 Kudos

hi ,

use

tables:kna1.

SELECT-OPTIONS: SKUNNR FOR kna1-KUNNR.

- between select option

regards,

sudha

Former Member
0 Kudos

Hi,

Try this code.

TYPES:

BEGIN OF TY_OUTPUT,

KUNNR TYPE KNA1-KUNNR,

LAND1 TYPE KNA1-LAND1,

VBELN TYPE VBAK-VBELN,

AUDAT TYPE VBAK-AUDAT,

AUART TYPE VBAK-AUART,

NETWR TYPE VBAK-NETWR,

END OF TY_OUTPUT.

DATA: ST_OUTPUT TYPE TY_OUTPUT occurs 0 with header line,

IT_OUTPUT TYPE TABLE OF TY_OUTPUT.

SELECT-OPTIONS : SKUNNR FOR ST_OUTPUT-KUNNR.

SELECT kna1KUNNR kna1LAND1 vbakVBELN vbakAUDAT vbakAUART vbakNETWR

into table st_output

FROM KNA1 AS kna1

inner JOIN VBAK AS vbak on kna1kunnr = vbakkunnr

WHERE kna1~KUNNR IN SKUNNR.

IF SY-SUBRC EQ 0.

LOOP AT IT_OUTPUT INTO ST_OUTPUT.

WRITE:/ ST_OUTPUT-KUNNR, ST_OUTPUT-LAND1,

ST_OUTPUT-VBELN,ST_OUTPUT-AUDAT,sT_OUTPUT-AUART,ST_OUTPUT-NETWR.

ENDLOOP.

endif.

Regards,

Ramana

Former Member
0 Kudos

hi rams,

in write statement,

WRITE:/ ST_OUTPUT.KUNNR, ST_OUTPUT.LAND1

ST_OUTPUT_NAME1, ST_OUTPUT.VBELN,ST_OUTPUT.AUDAT,AT_OUTPUT.AUART,ST_OUTPUT.NETWR.

write this as

WRITE:/ ST_OUTPUT-KUNNR, ST_OUTPUT-LAND1,

ST_OUTPUT-NAME1, ST_OUTPUT-VBELN,ST_OUTPUT-AUDAT,ST_OUTPUT-AUART,ST_OUTPUT-NETWR.

define NAME1 in ur structure definition ...

this will work...

please reward in case usefull...

regards,

prashant