我们如何在AMDP方法中实现像下面这样的逻辑减少。
lv_total = reduce tslxx9( init x type tslxx9 for lwa_out in lt_out
where ( companycode = <lf_wa>-bukrs and
ryear = <lf_wa>-year and
currency = <lf_wa>-currency
)
next x = x + lwa_out-amount ).发布于 2021-12-20 10:14:12
对SQLScript的直接转换将是对带有GROUP子句和SUM聚合函数的局部表变量执行SELECT。就像这样:
METHOD sum_amdp BY DATABASE PROCEDURE FOR HDB LANGUAGE SQLSCRIPT.
lv_total = SELECT SUM( amount )
FROM :it_out
WHERE companycode = :lf_wa.bukrs
AND ryear = :lf_wa.year
AND currency = :lf_wa.currency
GROUP BY companycode, ryear, currency;
ENDMETHOD.当然,在AMDP中实现这个方法是毫无意义的,因为它甚至不访问数据库。但它演示了SQLScript如何能够对变量执行复杂的SQL语句。这只有在一个更大的SQLScript方法的上下文中才有意义,该方法可以处理刚执行的数据库查询中的数据,也可以为将要执行的数据库查询准备数据。
https://stackoverflow.com/questions/70397108
复制相似问题