CDS视图中的算术运算问题。

2020-08-19 12:50发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)嗨, 我正在尝试在另一个CDS...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


嗨,

我正在尝试在另一个CDS视图中添加一个CDS视图的两个字段。 如果任何操作数为零,我将得到零作为输出。

在第一个CDS中,我将求和字段的SUM作为

 @DefaultAggregation:#SUM
  sum(total.tmp_count)作为总数,
  @DefaultAggregation:#SUM
  sum(blank.tmp_count)为空白,
  @DefaultAggregation:#SUM
  sum(error.tmp_count)作为错误

在第二个CDS中,我将字段Total和error添加为

总计,
 错误,
 总计+错误为Total_error
 

,输出为

因此,如果任何操作数(错误/总计)为零,我的输出(总计错误)将为零。

我也尝试了以下情况

  1. 将第一个CDS中的SUM值转换为整数。
  2. 添加前铸造错误和总计为整数。
  3. 将case语句放入错误以检查其是否为零,如果为零,则应仅显示总数,否则显示总数+错误。
  4. 在case语句中,它不接受NULL或'0'。

在所有这些情况下,我都得到相同的输出。

任何输入都会受到赞赏。

(3.6 kB)
10条回答
渐行渐远_HoldOn
2020-08-19 13:13

解决方案很简单,但 我认为此问题是CDS视图的错误。 如果只有2个字段,则空控件可以正常工作,但有时算术运算的情况更复杂。 该解决方案很简单,您必须创建一个新的CDS视图。

例如:

CDS视图1

 @DefaultAggregation:#SUM
  sum(total.tmp_count)作为total1,
  @DefaultAggregation:#SUM
  sum(blank.tmp_count)作为total2,
  @DefaultAggregation:#SUM
  sum(error.tmp_count)总计3,
  @DefaultAggregation:#SUM
  sum(error.tmp_count)为total4,

CDS视图2(新视图)

 case当total1为null时,则为0,否则total1结尾为total1,

 如果total2为null,则为0,否则total2以total2结尾,

 如果total3为null,则为0,否则total3以total3结尾,

 如果total4为null,则为0,否则total4以total4结尾,

CDS视图3

总数1 +总数2-(总数3 +总数4),

致谢

OAP

一周热门 更多>