如何根据参数的年份和期间编写SELECT语句

2020-08-17 06:24发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)很高兴认识您,专家 当程序使用...

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

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


很高兴认识您,专家

当程序使用PARAMETERS的会计年度和会计期间并缩小要通过SELECT语句获取的数据时,应使用哪种逻辑?

(我只想获取参数中输入的年份和期间的最新数据。)

例如,表中存在以下值。

不。 LFGJA LFMON DMBTR

1 2019 2 1000

2 2018 12 500

3 2018 10 300

在参数

年份:2019

期间:1

如果输入第二名(2018 12 500)

仅获取和

年份:2019

期间:3

如果输入1号(2019 1 1000)

我想写逻辑,例如只获取。我试图使所有数据早于在参数,SORT中降序输入的年份/期间,并尝试删除重复项,但记录数太大, 所以我在SELECT语句中得到了简短的转储。

以上,谢谢。

佐藤

7条回答
SAP砖家
2020-08-17 07:01

使用 在ABAP应用程序中打开SQL。
但是可以使用本机SQL完成。
检查您是否正在使用HANA数据库。

1。 如果是,则可以使用在函数()上使用Rank()函数的AMDP。
类似这样的方法
LT_BSEG_RANK = SELECT gjahr,poper,RANK()OVER(ORDER BY ABS(days_between(:i_fdate,t3.BUDAT )))AS等级;
LT_BSEG = SELECT *来自:LT_BSEG WHERE等级= 1;

2。 如果不行,请尝试使用本机sql这样的
TYPES:

ty_acdoca的开始,

gjahr TYPE acdoca-gjahr,

poper TYPE acdoca-poper,

排名TYPE i,

ty_acdoca的结尾。

数据:wa_acdoca类型ty_acdoca。

EXEC SQL。

选择gjahr,poper,rank()以上(按abs(DATS_DAYS_BETWEEN(BUDAT,'20190202')))排列成:wa_acdoca从acdoca限制1

ENDEXEC。

一周热门 更多>