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: 

getting error in this appliation

Former Member
0 Kudos

i am gettin error in this application saying SELECT should be follwed by ENDSELECT... but i am using joins ... then y i am gettin this error ... i am sending u the code...

REPORT Z_SB_PURCHSEDOC

NO STANDARD PAGE HEADING

LINE-SIZE 220.

TABLES: EKKO, "Purchasing Document Header

EKPO, "Purchasing Document Item

EKBE. "History per Purchasing Document

DATA: BEGIN OF ITAB OCCURS 0,

EBELN LIKE EKKO-EBELN, "Purchasing Document Number

EKGRP LIKE EKKO-EKGRP, "Purchasing Group

AGDAT LIKE EKPO-AGDAT, "Deadline for Submission of Bid/Quotation

PEINH LIKE EKPO-PEINH, "Price Unit

MATNR LIKE EKBE-MATNR, "Material Number

EBELP LIKE EKBE-EBELP, "Item Number of Purchasing Document

WRBTR LIKE EKBE-WRBTR, "Amount in document currency

MENGE LIKE EKBE-MENGE, "Quantity

UNITCOST(15) TYPE N,

END OF ITAB.

SELECTION-SCREEN BEGIN OF BLOCK BLK WITH FRAME TITLE TEXT-T01.

SELECT-OPTIONS: SMATNR FOR EKBE-MATNR,

SAGDAT FOR EKPO-AGDAT,

SEKGRP FOR EKKO-EKGRP.

SELECTION-SCREEN END OF BLOCK BLK.

TOP-OF-PAGE.

ULINE (155).

WRITE:/10 'REPID: 1234',40 'LANCO INFRATECH',80 'DATE:',SY-DATUM,

/38 'VENDOR MASTER REPORT',80 'PAGE NO:',SY-PAGNO.

ULINE (155).

SKIP.

SKIP.

ULINE (155).

WRITE:/ SY-VLINE,5 'SNO',

10 SY-VLINE,

15 'MATERIAL NUMBER',

34 SY-VLINE,

35 'PURCHASING DOC NO',

49 SY-VLINE,

50 'ITEM NO OF PURCHASING DOC',

79 SY-VLINE,

80 'AMT IN DOC CURRENCY',

109 SY-VLINE,

110 'QUANTITITY',

128 SY-VLINE,

130 'UNITCOST',

138 SY-VLINE,

140 'PRICE UNIT',

155 SY-VLINE.

ULINE (155).

ULINE (155).

START-OF-SELECTION.

SELECT T1~EBELN

T1~EKGRP

T2~AGDAT

T2~PEINH

T3~MATNR

T3~EBELP

T3~WRBTR

T3~MENGE

INTO CORRESPONDING FIELDS OF ITAB

FROM EKKO AS T1

INNER JOIN EKPO AS T2

ON T1EBELN = T2EBELN

INNER JOIN EKBE AS T3

ON T1EBELN = T3EBELN

WHERE T1~EKGRP IN SEKGRP.

END-OF-SELECTION.

LOOP AT ITAB.

WRITE: / SY-VLINE,5 SY-TABIX,

10 SY-VLINE,

15 ITAB-MATNR,

34 SY-VLINE,

35 ITAB-EBELN,

49 SY-VLINE,

50 ITAB-EBELP,

79 SY-VLINE,

80 ITAB-WRBTR,

109 SY-VLINE,

110 ITAB-MENGE,

128 SY-VLINE,

130 ITAB-UNITCOST,

138 SY-VLINE,

140 ITAB-PEINH,

155 SY-VLINE.

ENDLOOP.

Thanx & Regards,

PHANINDER GOLLAPUDI.

1 ACCEPTED SOLUTION

Former Member
0 Kudos

hi,

SELECT T1~EBELN

T1~EKGRP

T2~AGDAT

T2~PEINH

T3~MATNR

T3~EBELP

T3~WRBTR

T3~MENGE

INTO CORRESPONDING FIELDS OF <b>table</b> ITAB

FROM EKKO AS T1

INNER JOIN EKPO AS T2

ON T1EBELN = T2EBELN

INNER JOIN EKBE AS T3

ON T1EBELN = T3EBELN

WHERE T1~EKGRP IN SEKGRP

Thanks,CSR

6 REPLIES 6

Former Member
0 Kudos

hi,

SELECT T1~EBELN

T1~EKGRP

T2~AGDAT

T2~PEINH

T3~MATNR

T3~EBELP

T3~WRBTR

T3~MENGE

INTO CORRESPONDING FIELDS OF <b>table</b> ITAB

FROM EKKO AS T1

INNER JOIN EKPO AS T2

ON T1EBELN = T2EBELN

INNER JOIN EKBE AS T3

ON T1EBELN = T3EBELN

WHERE T1~EKGRP IN SEKGRP

Thanks,CSR

Former Member
0 Kudos

Hi Phaninder,

Missing of TABLE in the SELECT statement

Check this code in BOLD.

SELECT T1~EBELN

T1~EKGRP

T2~AGDAT

T2~PEINH

T3~MATNR

T3~EBELP

T3~WRBTR

T3~MENGE

INTO CORRESPONDING FIELDS OF<b> TABLE</b> ITAB

FROM EKKO AS T1

INNER JOIN EKPO AS T2

ON T1EBELN = T2EBELN

INNER JOIN EKBE AS T3

ON T1EBELN = T3EBELN

WHERE T1~EKGRP IN SEKGRP.

Former Member
0 Kudos

Hi!

INTO CORRESPONDING FIELDS OF

TABLE

itab

Regards

Tamá

Former Member
0 Kudos

Hi,

You need to include the keyword TABLE before the internal table name (ITAB) in your select query as follows.

SELECT T1~EBELN

T1~EKGRP

T2~AGDAT

T2~PEINH

T3~MATNR

T3~EBELP

T3~WRBTR

T3~MENGE

INTO CORRESPONDING FIELDS OF TABLE ITAB

FROM EKKO AS T1

INNER JOIN EKPO AS T2

ON T1EBELN = T2EBELN

INNER JOIN EKBE AS T3

ON T1EBELN = T3EBELN

WHERE T1~EKGRP IN SEKGRP.

The reason why the ENDSELECT is required without TABLE additon is that the select query consider's that you are selecting records one by one from table EKKO and EKPO, hence it asked for the 'ENDSELECT' statement.

If you specify the 'TABLE' keyword,then the program would have considered that you are selecting all the reocords meeting the selection criteria at once into internal table.

Hope this helps....

Regards,

Dilli

Former Member
0 Kudos

THANX TO ALL.

former_member196601
Active Participant
0 Kudos

hi

use the following querry....

SELECT T1~EBELN

T1~EKGRP

T2~AGDAT

T2~PEINH

T3~MATNR

T3~EBELP

T3~WRBTR

T3~MENGE

INTO CORRESPONDING FIELDS OF TABLE ITAB

FROM EKKO AS T1

INNER JOIN EKPO AS T2

ON T1EBELN = T2EBELN

INNER JOIN EKBE AS T3

ON T1EBELN = T3EBELN

WHERE T1~EKGRP IN SEKGRP.

or u can even try this.

SELECT T1~EBELN

T1~EKGRP

T2~AGDAT

T2~PEINH

T3~MATNR

T3~EBELP

T3~WRBTR

T3~MENGE

INTO CORRESPONDING FIELDS OF ITAB

FROM EKKO AS T1

INNER JOIN EKPO AS T2

ON T1EBELN = T2EBELN

INNER JOIN EKBE AS T3

ON T1EBELN = T3EBELN

WHERE T1~EKGRP IN SEKGRP.

append itab.

endselect.

both the ways it will work correctly.