过滤具有两个维度的 SET
Filtering a SET with two dimensions
我有一个事实 table 说 WhsFactJob
我们有 CreatedTimeKey
和 InProgressTimeKey
并且我有一个度量,其中工作计数。
我正在尝试创建一个计算量度,它将为我获取 CreatedTimeKey
介于 1(1:00 AM)
和 2(2:00 AM)
之间并且 InProgressTimeKey
也相同的工作计数1(1:00 AM)
和 2(2:00 AM)
.
我尝试使用 SUM
和 Except
,但错误提示 Except
必须使用相同的层次结构。( CreatedTimeKey
和 InprogressTime
关键是两个独立的维度。
任何建议都会有所帮助。
这是我正在尝试的 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]
)
我有一个事实 table 说 WhsFactJob
我们有 CreatedTimeKey
和 InProgressTimeKey
并且我有一个度量,其中工作计数。
我正在尝试创建一个计算量度,它将为我获取 CreatedTimeKey
介于 1(1:00 AM)
和 2(2:00 AM)
之间并且 InProgressTimeKey
也相同的工作计数1(1:00 AM)
和 2(2:00 AM)
.
我尝试使用 SUM
和 Except
,但错误提示 Except
必须使用相同的层次结构。( CreatedTimeKey
和 InprogressTime
关键是两个独立的维度。
任何建议都会有所帮助。
这是我正在尝试的 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]
)