【问题标题】:Perform sum of values then getting rid of decimals Sap WEBI report执行值的总和,然后去掉小数 Sap WEBI 报告
【发布时间】:2018-01-18 01:34:47
【问题描述】:

首先让我给你们一些信息。

源表:DataTbl

CALTIME CALTIME2    TYPE    MONEY
201712  201708     Month    2062.91666
201712  201708     Month    2062.91666
201712  201708     Month    2062.91666
201712  201708     Year     2062.91666
201712  201708     Year     2062.91666
201712  201708     Year     2062.91666

我的维度:CALTIME,CALTIME2,TYPE

CALTIME : DataTbl.CALTIME
CALTIME2:DataTbl.CALTIME2
类型:DataTbl.TYPE

我的衡量标准:钱(只有一个)

  1. 投影功能:无
  2. SQL : Cast(SUM(Case when DataTbl.TYPE = 'Month' then DataTbl.MONEY else Cast(DataTbl.MONEY as integer) end) as integer)

在我的 WebI 报告中,我将有多个文本框,在这些文本框中将有一个公式,用于按 CALTIME 和 CALTIME2 提取数据,如下所示:

Formula for MONTH = [MONEY] WHERE ([TYPE] = "Month" And [CALTIME] = "CONDITION1" AND [CALTIME2] = "CONDITION2")
Formula for Year = [MONEY] WHERE ([TYPE] = "Year" And [CALTIME] = "CONDITION1" AND [CALTIME2] = "CONDITION2")

我的目的是,如果 TYPE 是“月”,我们将执行所有相关值的总和并删除所有小数位。如果 TYPE 是“年”,我们将删除该值的所有小数位,然后执行所有小数删除值的总和。

以上面的数据为例,我想计算CALTIME = 201712和CALTIME2 = 201708,我会得到以下结果:

TYPE = Month = 2062.91666 + 2062.91666 + 2062.91666 = 6188.74998 = 6188                                     
TYPE = Year = 2062 + 2062 + 2062 = 6186             

但实际上我在 WEBI 报告中得到的是:

TYPE = Month = 2062+ 2062 + 2062 = 6186                                 
TYPE = Year = 2062 + 2062 + 2062 = 6186     

我的问题是,这是否可以通过在宇宙中声明度量选项来实现我想要的。我无法编辑 WEBI 报告上的所有文本框,因为它们有数百个。

【问题讨论】:

    标签: sap business-objects webi


    【解决方案1】:

    这里是SQL : Cast(SUM(Case when DataTbl.TYPE = 'Month' then DataTbl.MONEY else Cast(DataTbl.MONEY as integer) end) as integer),而不是类型转换DataTbl.MONEY,先把钱相加,然后再类型转换。 第二个选项(宇宙侧): 您可以尝试创建与变量“月”和“年”具有相同定义的对象。 这里先做总和,然后尝试在 Universe 或报表级别对对象的数据类型进行类型转换。 希望这能解决你的问题

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-10
      相关资源
      最近更新 更多