点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
嗨,
我需要使用前一天的数量来计算当天的数量。 如下表中所示,还计算了前一天的数量。
如何在图形计算视图或表格函数中进行此计算。
我不能使用SUM over,因为当值是负数时,我需要将其设置为零,然后再使用该零。 我不确定如何使用LAG,因为它是即时计算出的值。 不使用数组或游标,该怎么办?
Quantity31-Mar1-Apr2-Apr3-Apr4-AprQty110060-5-14-10Qty2206080620Qty36012589267Calc- Qty460-5-14-10-57Calc-Qty4-no negative600040
第一天(3月31日calc-Qty4-无负值是计算得出的值,第一天我没有问题。
对于第二天的1月4日,计算calc-Qty4-无负,将计算为3月31日的calc-Qty4-无负+ 1-Apr Qty2-1Apr Qty3。 如果此值为负数,则应为0。此数字应为0,用于以后的几天的计算。
类似地,需要在剩余的几天中进行计算。
谢谢您的帮助!
由于在计算每行时,前一行的计算值是必需的,因此无法使用诸如 落后。
我将使用表函数对根据您的需求排序的数据进行简单循环。 在循环中,我将使用基于索引的单元格访问 a>可以有效访问计算所需的数据。
非常感谢Lars为您提供详尽而翔实的答案! 确实从您的答案中学到了很多东西。 我确实在调用表函数的计算视图中尝试使用值为= 1的NO_CALC_VIEW_UNFOLDING。 CV仍未激活,并给出了相同的错误。 我也尝试过
NO_CALC_VIEW_UNFOLDING(表函数的名称)的值为= 1,并且仍然出现相同的错误。 我确实尝试了ceq20_disable_unfolding同义词,其值为1但仍然没有运气。table函数内部调用的Calculation视图是一堆不同的计算视图的并集。我认为这并不重要,但仍然会让您知道。 p>
好,另一个更新是表函数被错误激活。 但是在激活此表函数期间,在投影节点中调用此表函数的计算视图因错误而失败。
当前的SQLScript配置中不支持修改表变量
我还可以对表格功能进行选择。 但是我需要在计算视图中调用它。能否请您告诉我是否需要在计算视图端或配置端进行任何更改。
提示的语法为
感谢拉斯。 我确实创建了一个包装器表函数,并在提示中包含了其他表函数,并且该函数起作用了。
确定会检查SQL脚本配置。 我在想它给出一个错误,因为它具有表变量的更新,因为该错误表明不支持对表变量的修改。 在SQL控制台中,我确实尝试了匿名块。我没有使用基于Web的工作台。
-好的,我只是将其放入博客文章以便于参考。
是的,此错误消息-文献不足 -是处理计算视图时HANA查询优化器展开/展开工作的副产品(另请参见 https://blogs.sap.com/2019/08/29/when-to-use-execute-in-sql-engine-for- 计算视图/和SAP注释 https://launchpad.support.sap.com/#/notes/1857202 (有关此背景知识)。
基本上,HANA尝试在视图展开过程中将表函数转换为SQL等效项时,会意识到数组操作或直接结果集操作不会 没有SQL等效项 。 通常对此的反应是不进行展开操作,而不是对查询的这一部分不使用SQL引擎-但HANA 2似乎有些粗糙,它只是发出错误消息。
甚至还有相关的SAP注释# 2857606 -错误"在以下情况下不支持MAP_MERGE运算符 运行计算视图的当前SQLScript配置,该视图解释了与MAP_MERGE运算符有关的错误。
基本问题似乎与数组操作相同(顺便说一句, 不再抛出HANA 2 SPS 04中的错误!)
现在,您能对此做什么?
所提到的SAP注释中描述了一种解决方法:使用NO_CALC_VIEW_UNFOLDING()
这里值得记住(或学习)的地方是,该提示使用应避免展开的calc-view(或表函数)的名称作为参数。/p>
提示仅限于表功能而不是整个计算。 视图。
此方法的主要问题与所有基于提示的解决方案都相同:
您刚刚为自己买了一个维护问题。
不管怎么说,这就是现在。
干杯,
Lars
一周热门 更多>