09-20-2007 12:22 PM
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.
09-20-2007 12:25 PM
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
09-20-2007 12:25 PM
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
09-20-2007 12:29 PM
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.
09-20-2007 12:29 PM
09-20-2007 12:30 PM
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
09-20-2007 12:30 PM
09-20-2007 12:33 PM
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.