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: 

CDS View join table with asterisk values

0 Kudos

Hello Experts,

i would like to start using more CDS View but i have small problem.

I would like to check if a value is like a value in a customizing table.

The values in the customizing table would be for example mvgr1 = '3*', mvgr1 = '4*'

Something like this:

as select from vbap
inner join zzc_table on vbpa.mvgr1 like zzc_table.mvgr1<br>

If i had only a single asterisk value i would select with

where mvgr1 like '3%'

but the pattern should be edited in the customizing table.

In ABAP i could use range tables with the CP option.

Regards

Fabian

3 REPLIES 3

rajkumarnarasimman
Active Contributor
0 Kudos

Hi Fabian Schmidt,

In ABAP i could use range tables with the CP option.

Hope you can try the same range table concept in CDS also. Create one more CDS view and get first the letter in the zzc_table.mvgr1 variable using SUBSTRING function and using CONCAT function merge '%' into the same variable as shown below.

define view ZCDS_ZZCTABLE
as select from zzc_table as _zc
{
  CONCAT(SUBSTR(_zc.mvgr1,1,1),'%')     as MatGroup,
....
...
}

and use the above CDS view into the existing CDS view and do the inner join like below.

as select from vbap
innerjoin ZCDS_ZZCTABLE on vbpa.mvgr1 like ZCDS_ZZCTABLE.MatGroup

Regards

Rajkumar Narasimman

0 Kudos

Hi Rajkumar,

thanks for your reply.

Unfortunately i get an syntax error if i try to use like in the join with a tablefield.

compare value with like-condition must be a character-like literal. (translated by myself from German).

Looks like the like-condition could only be with parameters or manual constants.

Regards

Fabian

0 Kudos

It looks LIKE supports character literal 'A%' externally in select statement(SQL). Passing the same value in field it is not working. It is better to double check with @horst.keller