ABAP CDS-在Where子句中使用减号

2020-08-22 01:31发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)朋友 我正在构建界面视图。 我...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


朋友

我正在构建界面视图。 我需要从S4H表中选择一些值,其中Year列= systemcurrentyear-1。

我尝试了以下代码段。

将视图ZI_POC_REV_YTD定义为从s4htable中选择的视图{

//插入所有列

} WHERE数据源。YearColumn = cast(SUBSTRING(cast(tstmp_current_utctimestamp()作为文本),1、4)-1)

感谢您的帮助和建议

致谢

吉里

付费偷看设置
发送
3条回答
悻福寶寶
1楼 · 2020-08-22 02:10.采纳回答

一个简单的选择是使用DAT_ADD_MONTHS函数将-12个月"添加"到通过$ session.system_date标识的当前日期。 从结果中可以使用LEFT功能获取年份信息。

 ...
 WHERE datasource.YearColumn = left(dats_add_months(cast($ session.system_date as abap.dats),-12,'FAIL'),4)
落灬小鱼
2楼-- · 2020-08-22 02:19

"其他任何整数是什么意思" "?

bbpeas
3楼-- · 2020-08-22 02:21

你好,吉里,

我已经看到一些认真的铸造操作来实现这一目标。 我更喜欢使用表函数,AMDP看看它是否对您有帮助。

表功能:
 @ EndUserText.label:"当年收入"
 定义表函数ZTF_CY_REVENUE
 带有参数@ Environment.systemField:#CLIENTclnt:abap.clnt
 返回{
     MANDT:MANDT;
     BP_NUMBER:BU_PARTNER;
     CALYEAR:SCAL_YEAR;
     收入:ZNET_VALUE;}
 通过方法zcl_get_cy_revenue => get_curr_year_revenue实现;
 ******************************************************  **************************************
 AMDP类别:
 CLASS zcl_get_cy_revenue定义
 上市
 最后
 创建公共。
 公用部分。if_amdp_marker_hdb。
 类型:tt_revenue类型标准收入表。
 表函数ztf_cy_revenue的类方法get_curr_year_revenue。
 受保护的部分。
 专用部分。
 ENDCLASS。
 类别zcl_get_cy_revenue实施。
 HDB语言SQLSCRIPT选项的数据库功能的get_curr_year_revenue方法只能使用zrevenue进行读取。
     声明curr_year varchar(4);
     curr_year = extract(从current_date开始的年份);
 返回选择*从收入中,calyear = curr_year -1;
 终结法。
 ENDCLASS。

谢谢

一周热门 更多>