效果
@AbapCatalog.sqlViewName: 'Z_VYYY_CDS_03'
@AbapCatalog.compiler.compareFilter: true
@AbapCatalog.preserveKey: true
@AccessControl.authorizationCheck: #NOT_REQUIRED
@EndUserText.label: '常用字符函数'
@Metadata.ignorePropagatedAnnotations: true
// distinct 去重 一般不用 as select distinct from ska1 as A
define view ZVYYY_CDS_03 as select from ska1 as A
inner join skat as T on A.saknr = T.saknr and T.spras = '1'
and A.ktopl = T.ktopl
{
key A.ktopl ,
A.saknr ,
A.erdat ,
A.ernam ,
A.xloev ,
A.xspea ,
A.xspeb ,
A.xspep ,
T.spras ,
T.txt20 ,
T.txt50 ,
A.ktoks ,
@EndUserText.label: '科目编号+创建用户名(拼接)' // 尝试注解 但是失败了 应该咋注解
concat( A.saknr , A.ernam ) as ZNAME , // 拼科目和用户名
cast( T.txt20 as abap.char(10)) as TXT10, // 转换类型
substring( A.erdat ,1,4 ) as ZYEAR, // 截取字段
substring( A.erdat ,5,2 ) as ZMON, // 截取字段
substring( A.erdat ,7,2 ) as ZDAY, // 截取字段
case A.ktoks when 'Z008' then '次级成本要素'
when 'Z001' then '资产' end as ktoks_txt ,
// 可以嵌套使用case
case A.ktoks when 'Z001' then
case A.ernam when '3651' then 'AAA创建的资产' else '其他人创建的资产' end
end as ktoks_txt2 ,
// 可以嵌套使用case
case A.ktoks when 'Z008' then
case A.ernam when '123' then 'BBB创建的次级成本要素' else
( case A.xloev when 'X' then 'AAA创建的被删除的次级成本要素' else 'AAA创建的次级成本要素' end ) end
end as ktoks_txt3 ,
// 长度
length( A.ernam ) as zernam_lenth ,
upper( A.ernam ) as ZUPPER ,
// 安全除法
// division( A.ernam * 2 , 3 )
// 四舍五入 ROUND
ROUND( A.last_changed_ts , 2 ) as ZNUM,
//拼接字段并在中间插入指定数量空格 CONCAT_WITH_SPACE( )
CONCAT_WITH_SPACE( A.saknr , A.ernam , 2 ) as ZNAME_SPACE
}