BODS中的上一行值

2020-09-01 22:39发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)您好, 我正面临一个场景,其中...

         点击此处--->   EasySAP.com群内免费提供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)
8条回答
派大星 ヾ
2020-09-01 22:53

它是笛卡尔积。 让我们看一下LBKUM = 5的最后四行。

数量的值可以通过

  1. 5-3 = 2
  2. 来计算。 5-3-1 = 1
  3. 5-3-1-1 = 0
  4. 5-3-1-1-2 = -2

换句话说,计算总和(MENGE),其中ROW_NUM <= current_ROW_NUM。 所需的结果是LBKUM-SUM(MENGE)。

我将Query2的输出与另一个Query3连接。 该Query3使用ROW_GENERATION转换和联接条件Query3.ROW_NO> = Row_Gen.Generated_Key进行第二次输入。 这将创建其他行。 例如,对于ROW_NO = 3的输入行,它将另外输出ROW_NO = 1和2的行。

此查询的输出进入另一个查询(Query_Agg),您在其中计算每个MATNR,WERKS,LBKUM列名称为SUM_MENGE的sum(MENGE)。

现在将Query_Agg与 基于相同的三个键的Query2,您具有LBKUM和sum(MENGE)。 因此,QUANTITY = Query2.LBKUM-Query_Agg.SUM_MENGE。

一周热门 更多>