SSAS 条件多维数据集计算成员
SSAS Conditional cube calculated member
我是 SSAS 和多维数据集的新手。
我有一个简单的数据库table:
product|value|status
-------|-----|------
A|100|1
B|20|0
A|20|0
B|80|1
状态字段表示是计划销售还是已经关闭。
我想在多维数据集中有度量
计划 (0) 销售和关闭 (1) 销售。他们应该在给定状态下对每个产品的价值求和。
输出立方体应如下所示:
product|planned sale|closed sale
------|---------|-----------
A|20|100
B|20|80
我有衡量价值和地位的标准。但是,无论我如何对函数进行切片,状态中的布尔值都会被聚合。我想我的措施配置错误。我尝试将其设置为布尔值,但它似乎进行 "and" 计算。
我尝试了 IFF 和 .currentmember 希望它能迭代。
我一定是遗漏了一些基本的东西,请帮忙。谢谢你。
添加一个简单的状态维度,0 表示已计划,1 表示已结束。
它正在聚合,因为现在您正在使用它作为衡量标准。
根据您的评论进行编辑:
我认为您错误地假设 SSAS 会将 measures.status 的值解释为布尔值。 SQL 没有布尔数据类型的概念。尽管 bit
数据类型可用于保存布尔值,但在 SQL 中你不能说 IF [MyBitColumn] THEN ...
而是必须说 IF [MyBitColumn]=1 THEN ...
。 SQL 服务器不会自动 understand/assume 1 = true,0 = false。
为您计算的度量试试这个:
iif([Measures].[Status]=1, [Measures].[Value],0) //closed sale
iif([Measures].[Status]=0, [Measures].[Value],0) //planned sale
我是 SSAS 和多维数据集的新手。
我有一个简单的数据库table:
product|value|status
-------|-----|------
A|100|1
B|20|0
A|20|0
B|80|1
状态字段表示是计划销售还是已经关闭。
我想在多维数据集中有度量 计划 (0) 销售和关闭 (1) 销售。他们应该在给定状态下对每个产品的价值求和。
输出立方体应如下所示:
product|planned sale|closed sale
------|---------|-----------
A|20|100
B|20|80
我有衡量价值和地位的标准。但是,无论我如何对函数进行切片,状态中的布尔值都会被聚合。我想我的措施配置错误。我尝试将其设置为布尔值,但它似乎进行 "and" 计算。
我尝试了 IFF 和 .currentmember 希望它能迭代。
我一定是遗漏了一些基本的东西,请帮忙。谢谢你。
添加一个简单的状态维度,0 表示已计划,1 表示已结束。
它正在聚合,因为现在您正在使用它作为衡量标准。
根据您的评论进行编辑:
我认为您错误地假设 SSAS 会将 measures.status 的值解释为布尔值。 SQL 没有布尔数据类型的概念。尽管 bit
数据类型可用于保存布尔值,但在 SQL 中你不能说 IF [MyBitColumn] THEN ...
而是必须说 IF [MyBitColumn]=1 THEN ...
。 SQL 服务器不会自动 understand/assume 1 = true,0 = false。
为您计算的度量试试这个:
iif([Measures].[Status]=1, [Measures].[Value],0) //closed sale
iif([Measures].[Status]=0, [Measures].[Value],0) //planned sale