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

query problem

Former Member
0 Likes
677

REPORT ZSKARCR3

NO STANDARD PAGE HEADING.

*****************DATA DECLARATION*************************************

TABLES: MARA, MAKT.

DATA: BEGIN OF I_MARA OCCURS 0,

I_MATNR LIKE MARA-MATNR,

I_MEINS LIKE MARA-MEINS,

I_MAKTX LIKE MAKT-MAKTX,

END OF I_MARA.

SELECT SINGLE MARA~MATNR

MARA~MEINS

MAKT~MAKTX

INTO I_MARA

FROM MARA

INNER JOIN MAKT

ON MARAMATNR = MAKTMATNR

WHERE MARA~MATNR = I_MARA-I_MATNR

AND MAKT~SPRAS = SY-LANGU.

***************************SELECTION SCREEN****************************

  • SELECTION-SCREEN: BEGIN OF BLOCK B1 WITH FRAME TEXT-001

  • SELECT-OPTIONS: MATERIAL FOR I_MARA-I_MATNR NO-EXTENSION NO INTERVALS.

  • SELECTION-SCREEN: END OF BLOCK B1.

***************************PRINTING STATEMENT**************************

write : /2 'date:', 10 sy-datum.

skip 1.

write : /5 'MATERIAL NUMBER', 25 'MATERIAL DESCRIPTION', 50 'UNIT OF MEASURE'.

write : /5 '**************', 25 '******************', 50 '**************'.

write : /5 I_MARA-I_MATNR, 12 I_MARA-I_MAKTX, 30 I_MARA-I_MEINS.

This is my code to fetch data from the tables, but during debugging i found the debugger is not executing the select statement.

Can anybody help me out?

regards

sobhan

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
620


SELECT SINGLE MARA~MATNR
MARA~MEINS
MAKT~MAKTX
INTO I_MARA
FROM MARA as mara
INNER JOIN MAKT as makt
ON MARA~MATNR = MAKT~MATNR
WHERE  MAKT~SPRAS = SY-LANGU

5 REPLIES 5
Read only

Former Member
0 Likes
621


SELECT SINGLE MARA~MATNR
MARA~MEINS
MAKT~MAKTX
INTO I_MARA
FROM MARA as mara
INNER JOIN MAKT as makt
ON MARA~MATNR = MAKT~MATNR
WHERE  MAKT~SPRAS = SY-LANGU

Read only

0 Likes
620

Hi,

thanks for help me out.

the code really did work, but what is the difference when you put 'in' instead of '='in the where clause?

best of my regards.

Read only

0 Likes
620

Hi Sobhan,

Its not problem with In or =. It is the problem with ur WHERE CLAUSE. Check ur WHERE CLAUSE carefully.

SELECT SINGLE MARA~MATNR

MARA~MEINS

MAKT~MAKTX

INTO I_MARA

FROM MARA

INNER JOIN MAKT

ON MARAMATNR = MAKTMATNR

WHERE MARA~MATNR = I_MARA-I_MATNR

AND MAKT~SPRAS = SY-LANGU.

Here i_mara is defined with header line. So at the time of execution of this select i_mara-matnr doesn't have any data.

So ur select is failing. Also for the material number u gave select option. But in select u r using select single. This select will select only one record. So modify ur select like below to select all the records for the materials entered in select option.

SELECT MARA~MATNR

MARA~MEINS

MAKT~MAKTX

INTO TABLE I_MARA

FROM MARA

INNER JOIN MAKT

ON MARAMATNR = MAKTMATNR

WHERE MARA~MATNR IN MATERIAL

AND MAKT~SPRAS = SY-LANGU.

Why we are using In is because u declared ur material number as select option. For parameter we will use = and for select option use IN.

Hope this is clear now.

Thanks,

Vinod.

Read only

Former Member
0 Likes
620

Hi Sobhan,

Try the following code i have changed it,

*****************DATA DECLARATION*************************************

TABLES: MARA, MAKT.

DATA: BEGIN OF I_MARA OCCURS 0,

I_MATNR LIKE MARA-MATNR,

I_MEINS LIKE MARA-MEINS,

I_MAKTX LIKE MAKT-MAKTX,

END OF I_MARA.

***************************SELECTION SCREEN****************************

SELECTION-SCREEN: BEGIN OF BLOCK B1 WITH FRAME title TEXT-001 .

SELECT-OPTIONS: MATERIAL FOR I_MARA-I_MATNR NO-EXTENSION NO INTERVALS.

SELECTION-SCREEN: END OF BLOCK B1.

***************************PRINTING STATEMENT**************************

SELECT SINGLE MARA~MATNR

MARA~MEINS

MAKT~MAKTX

INTO I_MARA

FROM MARA

INNER JOIN MAKT

ON MARAMATNR = MAKTMATNR

WHERE MARA~MATNR in MATERIAL

AND MAKT~SPRAS = SY-LANGU.

write : /2 'date:', 10 sy-datum.

skip 1.

write : /5 'MATERIAL NUMBER', 25 'MATERIAL DESCRIPTION', 50 'UNIT OF MEASURE'.

write : /5 '**************', 25 '******************', 50 '**************'.

write : /5 I_MARA-I_MATNR, 25 I_MARA-I_MAKTX, 50 I_MARA-I_MEINS.

PS : Reward all useful answers.

Regards,

Talwinder

Read only

Former Member
0 Likes
620

Instead of using Inner join u can use *for all entries* . This will improve the performance of your program and the code is also very easy to understand.

regards