过滤具有两个维度的 SET

Filtering a SET with two dimensions

我有一个事实 table 说 WhsFactJob 我们有 CreatedTimeKeyInProgressTimeKey 并且我有一个度量,其中工作计数。

我正在尝试创建一个计算量度,它将为我获取 CreatedTimeKey 介于 1(1:00 AM)2(2:00 AM) 之间并且 InProgressTimeKey 也相同的工作计数1(1:00 AM)2(2:00 AM).

我尝试使用 SUMExcept,但错误提示 Except 必须使用相同的层次结构。( CreatedTimeKeyInprogressTime关键是两个独立的维度。

任何建议都会有所帮助。

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

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

我认为您可以通过 cross-joining 将每组设置为另一组的成员来消除异常:但不确定查询结果是否有用 - 目前我无法测试以下:

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];

我不清楚您为什么要使用 EXCEPT。这个怎么样:

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