首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >MDX: iif尺寸值的条件

MDX: iif尺寸值的条件
EN

Stack Overflow用户
提问于 2014-11-28 21:00:44
回答 1查看 2.3K关注 0票数 0

我有一个由2个立方体组成的虚拟立方体。第一个多维数据集的事实表示例。

代码语言:javascript
运行
复制
id      object_id     time_id     date_id        state
1        10              2          1               0
2        11              5          1               0
3        10              7          1               1
4        10              3          1               0
5        11              4          1               0
6        11              7          1               1
7        10              8          1               0
8        11              5          1               0
9        10              7          1               1
10       10              9          1               2

其中状态:0-正常,1-关闭,2-未知

对于这个多维数据集,我有一个度量值StateCount,它应该计算每个object_id的状态。例如,这里我们有这样的结果:

对于10 :3次Ok,2次Down,1次未知11 :3次Ok,1次Down

第二个立方体看起来像这样:

代码语言:javascript
运行
复制
id      object_id     time_id     date_id        status
1        10              2          1               0
2        11              5          1               0
3        10              7          1               1
4        10              3          1               1
5        11              4          1               1

其中状态:0-输出,1-输入。我把这个保存在StatusDim里。

在这个表中,我保留了不应该被计算在内的记录。如果对象状态为1,则意味着我已将其从计数中排除。

如果我们将这些表相交并使用StateCount,我们将收到以下结果:

对于10 :2次Ok,1次Down,1次未知

对于11 :2次Ok,1次Down

据我所知,我必须使用带有IIF条件的计算成员。目前我正在尝试这样的东西。

代码语言:javascript
运行
复制
WITH MEMBER [Measures].[StateTimeCountDown] AS(
  iif(
    [StatusDimDown.DowntimeHierarchy].[DowntimeStatus].CurrentMember.MemberValue 
         <> "in"
  , [Measures].[StateTimeCount]
  , null )

)

EN

回答 1

Stack Overflow用户

发布于 2014-11-29 04:23:34

这样做的多维方法是从状态和状态列创建属性(希望有用户可理解的成员,即使用"Ok“而不是"0")。然后,您可以只对事实数据表使用普通计数度量,并按这些属性进行切片。不需要复杂的计算定义。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27189239

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档