0

首先让我给大家一些信息。

源表: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
TYPE:DataTbl.TYPE

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

  1. 投影功能:无
  2. SQL : Cast(SUM(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 报告上的所有文本框,因为它们有数百个。

4

1 回答 1

0

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

于 2018-02-14T14:04:25.530 回答