2010 Oct 21 3:23 PM
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!
2010 Oct 21 3:27 PM
where m~matnr IN s_matnr.->remove this full stop.
and g~mblnr IN s_mblnr
and k~spras IN s_spras.
2010 Oct 21 3:31 PM
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
2010 Oct 21 3:38 PM
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.
2010 Oct 21 10:38 PM
How is s_matnr declared? Is it a Select Option or Range?
Thank you,
Steven Coolbaugh
2010 Oct 22 2:53 AM
2010 Oct 22 3:20 AM
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.
| User | Count |
|---|---|
| 3 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |