点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
您好,
我正面临一个场景,其中当行号不等于1时,我需要在"数量"列中覆盖该值。
公式将为:如果行号不等于1,则数量-数量。数量将为前一行的值。我使用了前一行的值函数,但没有运气。请帮助我。
ifthenelse(Query_2.ROW_NO = 1,Query_2.Quantity,previous_row_value(Query_2.Quantity)-Query_2.MENGE)
预期的回答是147-10,即137。
(12.1 kB)
好的。 让我们将问题分为两部分。
1)您是否同意,如果工作表中还有另一列称为cumulative_sum的列,即所有先前MENGE值加上当前值的总和,那么问题会很简单吗? p>
注意:
G2 = E2
G3 = E2 + E3
G4 = E4
G5 = E4 + E5
G6 = E6
G7 = E6 + E7
G8 = E6 + E7 + E8
G9 = E6 + E7 + E8 + E9
然后,QUANTITY就是LBKUM-CUMULATIVE_SUM(MENGE)。 由于ROW_NO = 1的CUMULATIVE_SUM(MENGE)是MENGE本身,因此不再需要ifthenelse,因此将其隐式应用。
2)如何创建cumulative_sum?
这 我已经在这里(和子页面)记录了一些时间。 您可以从中间开始阅读,因为前半部分只是推理以及如何创建ROW_NO列。
https://wiki.scn.sap.com/wiki/display/EIM/Cumulative+Sum
您的Query_cartesian_product中的where子句将是 p>
更好吗?
PS:它不是使用Row_Gen创建笛卡尔乘积,而是使用自连接,从而为您提供相同的结果 而且效率更高。 抱歉,建议Row_Gen时忘记了该选项。
是的,我无法实施Werner。请您详细说明一下吗?
一周热门 更多>