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

whats wrong in this select statement

Former Member
0 Likes
1,429

SELECT A~BUKRS

A~FKART

A~FKDAT

A~VBELN

B~POSNR

B~MATNR

B~MEINS

B~FKIMG

INTO TABLE IT_DATA

FROM VBRK AS A INNER JOIN VBRP AS B ON BVBELN = AVBELN

WHERE A~BUKRS = P_BUKRS AND

A~FKART IN S_FKART AND

A~FKDAT IN S_FKDAT AND

B~MATNR IN S_MATNR.

i am getting dump in this select statement

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
1,375

Hi ,

I guess it is the issue with the Structure of the "IT_DATA".

The code is working fine with the structure of "IT_DATA".

Please check the code -

data : begin of wa,
  bukrs type vbrk-bukrs,
        FKART type vbrk-FKART,
FKDAT type vbrk-FKDAT,
VBELN type vbrk-VBELN,
POSNR type vbrp-POSNR,
MATNR type vbrp-MATNR,
MEINS type vbrp-MEINS,
FKIMG type vbrp-FKIMG,
       end of wa,

it_data like table of wa.

SELECT A~BUKRS
A~FKART
A~FKDAT
A~VBELN
B~POSNR
B~MATNR
B~MEINS
B~FKIMG
INTO TABLE IT_DATA
FROM VBRK AS A INNER JOIN VBRP AS B ON B~VBELN = A~VBELN.
WHERE A~BUKRS = P_BUKRS AND
A~FKART IN S_FKART AND
A~FKDAT IN S_FKDAT AND
B~MATNR IN S_MATNR.

13 REPLIES 13
Read only

kesavadas_thekkillath
Active Contributor
0 Likes
1,375

What is the dump ?

Read only

Former Member
0 Likes
1,375

hi,

can u cut paste the error.

Regards,

Abhijit

Read only

Former Member
0 Likes
1,375

Hi,

Check your ON clause in inner join.

Left table : A

Right Table: B

so the condition should be like this:

AVBELN = BVBELN

I hope it helps u.

Read only

Former Member
0 Likes
1,375

hi deepti,

there are different cases .. can you give whta kind of dump your gtetting "dump discription".

~linganna

Read only

Former Member
0 Likes
1,376

Hi ,

I guess it is the issue with the Structure of the "IT_DATA".

The code is working fine with the structure of "IT_DATA".

Please check the code -

data : begin of wa,
  bukrs type vbrk-bukrs,
        FKART type vbrk-FKART,
FKDAT type vbrk-FKDAT,
VBELN type vbrk-VBELN,
POSNR type vbrp-POSNR,
MATNR type vbrp-MATNR,
MEINS type vbrp-MEINS,
FKIMG type vbrp-FKIMG,
       end of wa,

it_data like table of wa.

SELECT A~BUKRS
A~FKART
A~FKDAT
A~VBELN
B~POSNR
B~MATNR
B~MEINS
B~FKIMG
INTO TABLE IT_DATA
FROM VBRK AS A INNER JOIN VBRP AS B ON B~VBELN = A~VBELN.
WHERE A~BUKRS = P_BUKRS AND
A~FKART IN S_FKART AND
A~FKDAT IN S_FKDAT AND
B~MATNR IN S_MATNR.

Read only

0 Likes
1,375

TYPES : BEGIN OF TY_DATA,

BUKRS TYPE VBRK-BUKRS,

FKART TYPE VBRK-FKART,

FKDAT TYPE VBRK-FKDAT,

VBELN TYPE VBRK-VBELN, " IN BOTH VBRK AND VBRP

POSNR TYPE VBRP-POSNR,

MATNR TYPE VBRP-MATNR,

MAKTX TYPE MAKT-MAKTX,

MEINS TYPE VBRP-MEINS,

FKIMG TYPE VBRP-FKIMG,

END OF TY_DATA.

DATA : WA_DATA TYPE TY_DATA,

IT_DATA TYPE STANDARD TABLE OF TY_DATA.

SELECT A~BUKRS

A~FKART

A~FKDAT

A~VBELN

B~POSNR

B~MATNR

B~MEINS

B~FKIMG

INTO TABLE IT_DATA

FROM VBRK AS A INNER JOIN VBRP AS B ON BVBELN = AVBELN

WHERE A~BUKRS = P_BUKRS AND

A~FKART IN S_FKART AND

A~FKDAT IN S_FKDAT AND

B~MATNR IN S_MATNR.

Read only

0 Likes
1,375

use corresponding fields of table IT_DATA.

since the table structure is not similar to the fields selected in the SELECT Query .

Regards,

Abhijit

Read only

0 Likes
1,375

Hello


TYPES : BEGIN OF TY_DATA,
BUKRS TYPE VBRK-BUKRS,
FKART TYPE VBRK-FKART,
FKDAT TYPE VBRK-FKDAT,
VBELN TYPE VBRK-VBELN, " IN BOTH VBRK AND VBRP
POSNR TYPE VBRP-POSNR,
MATNR TYPE VBRP-MATNR,
MAKTX TYPE MAKT-MAKTX, <= this field is not present in SELECT !!!!!!
MEINS TYPE VBRP-MEINS,
FKIMG TYPE VBRP-FKIMG,
END OF TY_DATA.

DATA : WA_DATA TYPE TY_DATA,
IT_DATA TYPE STANDARD TABLE OF TY_DATA.

SELECT A~BUKRS
A~FKART
A~FKDAT
A~VBELN
B~POSNR
B~MATNR
B~MEINS
B~FKIMG
INTO TABLE IT_DATA
FROM VBRK AS A INNER JOIN VBRP AS B ON B~VBELN = A~VBELN
WHERE A~BUKRS = P_BUKRS AND
A~FKART IN S_FKART AND
A~FKDAT IN S_FKDAT AND
B~MATNR IN S_MATNR.

Field MAKTX is declared in internal table but not present in SELECT query. So in SELECT occurs attempt to write FKIMG to MAKTX. This brings to dumb because types inconsistency.

Two ways:

1. Remove this


TYPES : BEGIN OF TY_DATA,
BUKRS TYPE VBRK-BUKRS,
FKART TYPE VBRK-FKART,
FKDAT TYPE VBRK-FKDAT,
VBELN TYPE VBRK-VBELN, " IN BOTH VBRK AND VBRP
POSNR TYPE VBRP-POSNR,
MATNR TYPE VBRP-MATNR,
MAKTX TYPE MAKT-MAKTX, <= remove this
MEINS TYPE VBRP-MEINS,
FKIMG TYPE VBRP-FKIMG,
END OF TY_DATA.

2. Add to select query table MAKT for fetch MAKTX.

Read only

0 Likes
1,375

Error analysis

The data read during a SELECT access could not be inserted into the

target field.

Either conversion is not supported for the target field's type or the

target field is too short to accept the value or the data are not in a

form that the target field can accept

000890 FORM GET_DATA.

000900

000910

000920

000930 SELECT A~BUKRS

000940 A~FKART

000950 A~FKDAT

000960 A~VBELN

000970 B~POSNR

000980 B~MATNR

000990 B~MEINS

001000 B~FKIMG

001010 INTO TABLE IT_DATA

001020 FROM VBRK AS A INNER JOIN VBRP AS B ON BVBELN = AVBELN

001030 WHERE A~BUKRS = P_BUKRS AND

001040 A~FKART IN S_FKART AND

001050 A~FKDAT IN S_FKDAT AND

-


> B~MATNR IN S_MATNR.

001070

001080

001090

001100 DESCRIBE TABLE IT_DATA1 LINES LINES.

001110 IF LINES = 0.

001120 MESSAGE I001 WITH 'No data available for the selection'.

001130 ENDIF.

001140

001150 CLEAR : LINES.

001160

001170

001180

001190 ENDFORM. " GET_DATA

001200

the above is the dump

Read only

0 Likes
1,375

Hi,

TYPES : BEGIN OF TY_DATA,
BUKRS TYPE VBRK-BUKRS,
FKART TYPE VBRK-FKART,
FKDAT TYPE VBRK-FKDAT,
VBELN TYPE VBRK-VBELN, 
POSNR TYPE VBRP-POSNR,
MATNR TYPE VBRP-MATNR,
MAKTX TYPE MAKT-MAKTX, !
MEINS TYPE VBRP-MEINS,
FKIMG TYPE VBRP-FKIMG,
END OF TY_DATA.
 
DATA : WA_DATA TYPE TY_DATA,
IT_DATA TYPE STANDARD TABLE OF TY_DATA.
 
SELECT A~BUKRS
A~FKART
A~FKDAT
A~VBELN
B~POSNR
B~MATNR
C~MAKTX                   " Add this
B~MEINS
B~FKIMG
INTO TABLE IT_DATA
FROM VBRK AS A INNER JOIN VBRP AS B ON B~VBELN = A~VBELN
                               INNER JOIN MAKTX AS C ON B~MATNR = C~MATNR     " Add this
WHERE A~BUKRS = P_BUKRS AND
A~FKART IN S_FKART AND
A~FKDAT IN S_FKDAT AND
B~MATNR IN S_MATNR AND
C~SPRAS EQ 'EN'.      " Give the language here

or Use FOR ALL ENTRIES instead of Joins

Regards

Bala Krishna

Read only

Former Member
0 Likes
1,375

Either use move corresponding in the select query which is generally not preferable due to performance.

Or Remove the maktx field from the structure.

Or Move the maktx field in the structure at the last position in the structure so it wont affect the query.

Regards,

Lalit Mohan Gupta.

Read only

Former Member
0 Likes
1,375

HI,

Use INTO CORRESPONDING FIELDS OF TABLE ITAB instead of INTO TABLE ITAB.

Read only

Former Member
0 Likes
1,375

Hi,

Your tab declaration seems to be wrong.

try following code



tables: vbrp, vbrk.
parameters: p_bukrs type bukrs.

select-options: s_fkart for vbrk-fkart,
                s_fkdat for vbrk-fkdat,
                s_matnr for vbrp-matnr.

types : begin of ty_data,
bukrs type vbrk-bukrs,
fkart type vbrk-fkart,
fkdat type vbrk-fkdat,
vbeln type vbrk-vbeln, " IN BOTH VBRK AND VBRP
posnr type vbrp-posnr,
matnr type vbrp-matnr,
*MAKTX TYPE MAKT-MAKTX,        "TAKE OUT THIS FIELD FROM HERE
meins type vbrp-meins,
fkimg type vbrp-fkimg,
end of ty_data.

data : wa_data type ty_data,
it_data type standard table of ty_data.

select a~bukrs
a~fkart
a~fkdat
a~vbeln
b~posnr
b~matnr
b~meins
b~fkimg
into table it_data
from ( vbrk as a inner join vbrp as b on a~vbeln = b~vbeln )
where a~bukrs = p_bukrs and
      a~fkart in s_fkart and
      a~fkdat in s_fkdat and
      b~matnr in s_matnr.

Cheers,

Raj