过滤具有两个维度的SET

时间:2017-02-14 17:17:31

标签: ssas mdx

我有一个事实表说WhsFactJob我们有CreatedTimeKeyInProgressTimeKey,我有一个衡量工作数量的指标。

我正在尝试创建一个计算度量,它会向我提取CreatedTimeKey介于1(1:00 AM)2(2:00 AM)之间的作业计数,而InProgressTimeKey也会落在同一个{{ 1}}和1(1:00 AM)

我尝试使用2(2:00 AM)SUM,但错误地说Except必须使用相同的层次结构。(ExceptCreatedTimeKey密钥是两个单独的维度。

任何建议都会有所帮助。

这是我正在尝试的MDX示例。

InprogressTime

2 个答案:

答案 0 :(得分:1)

我认为你可以通过将每个集合交叉连接到另一个集合中的成员来摆脱异常:不确定查询的结果是否有用 - 目前我无法测试以下内容:

EXCEPT函数中两组元组的维度现在应该是相同的:

WITH 
  MEMBER [Measures].[Sum] AS 
   SUM(
      EXCEPT(
         {[Created Time].[Hour].&[0]:[Created Time].[Hour].&[14]}
         *[In Progress Time].[Hour].[Hour].MEMBERS
        , [Created Time].[Hour].[Hour].MEMBERS
        *{[In Progress Time].[Hour].&[0]:[In Progress Time].[Hour].&[14]}
      )
     ,[Measures].[Job Count]
   ) 
SELECT 
    [Measures].[Sum] ON 0 
FROM [Cube];

答案 1 :(得分:1)

我不清楚你为什么要使用EXCEPT。怎么样:

SUM
(
CROSSJOIN(
  {[Created Time].[Hour].&[0]:[Created Time].[Hour].&[14]},
  {[In Progress Time].[Hour].&[0]:[In Progress Time].[Hour].&[14]}
          )
,[Measures].[Job Count]
)