点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
你好,
我有一个具有以下值的表:
日期值 6/3/2019 -50 6/25/2019 20 7/28/2019 -41 8/6/2019 -41 8/18/2019 -27 2019年10月18日90 2019年10月19日90 11/2/2019 -16 11/2/2019 61 11/20/2019 -30 2019年11月28日95 12/30/2019 -18 2020年1月1日76 2020年2月1日14 2020年2月9日36 2020年2月21日48 3/4/2020 -38 2020年4月18日41 5/14/2020 46 2020年5月26日62 5/27/2020 -22 6/8/2020 61 2020年8月30日77 2020年10月7日59 2020年11月15日51 2020年12月19日18 2021年1月12日26 1/24/2021 82 2/18/2021 10 20/11/3 -37 4/5/2021 -17 6/16/2021 85
我想在此表上执行SELECT,并在"值"字段上进行计算。 如果您将上述数据剪切粘贴到Excel中,则第三列的公式为:
= IF(OR(AND(AND(B2> 0,C1 <0),AND(B2 <0,C1 <0)),B2 + C1,B2)
这个公式是总的,但不是一个真正的公式。 B2 + C1是运行总计的实际等值。 只要达到条件,我的运行总计就会根据上一次计算中的值进行重置。 我尝试使用一些SAP提供的窗口函数,但是这些函数不允许将上一行的计算列用于其他计算。 我能找到的最接近的匹配是重用变量,但HANA尚不支持此功能。 由于我的计算是递归的,因此我使用循环来实现此目的,但是它很慢。 我试图看看是否有更好的方法来计算此值而没有循环?
我想要的最终结果是:
日期值CalcFld 6/3/2019 -50 -50 6/15/2019 25 -25 6/25/2019 20 -5 7/28/2019 -41 -46 8/6/2019 -41 -87 8/18/2019 -27 -114 10/18/2019 90 -24 10/19/2019 90 66 11/2/2019 -16 -16 11/2/2019 61 45 11/20/2019 -30 -30 2019年11月28日95 65 12/30/2019 -18 -18 2020年1月1日76 58 2020/2/1 14 14 2020年2月9日36 36 2020年2月21日48 48 3/4/2020 -38 -38 2020年4月18日41 3 5/14/2020 46 46 2020年5月26日62 62 5/27/2020 -22 -22 6/8/2020 61 39 2020年8月30日77 77 2020年10月7日59 59 2020年11月15日51 51 12/19/2020 18 18 2021年1月12日26 26 1/24/2021 82 82 2/18/2021 10 10 20/11/3 -37 -37 4/5/2021 -17 -54 6/16/2021 85 31
我创建的表的结构与您的示例相同:
然后使用WHILE语法应用以下逻辑:
它应该给您想要的结果。
感谢您的回复。 我现在有类似的设置。 我一直在寻找没有循环的解决方案。 循环运行非常慢。
谢谢
一周热门 更多>