MDX计算的成员不能用作另一个计算成员的父级

时间:2016-10-03 12:32:15

标签: mdx member

我有一个MDX查询,它从句点获取度量并将其显示为下一个日期级别:

WITH 
  MEMBER [Creation Date].[2017].[2017/01].[2017/01].[2017/01/11] AS 
    Aggregate
    (
      Filter
      (
        [Creation Date].[Minute].MEMBERS
       ,
          [Creation Date].[Minute].CurrentMember.Name >= '2017/01/11 07:45'
        AND 
          [Creation Date].[Minute].CurrentMember.Name <= '2017/01/11 23:59'
      )
    ) 
SELECT 
  {[Measures].[Sales Count]} ON COLUMNS
 ,{[Creation Date].[2017].[2017/01].[2017/01].[2017/01/11]} ON ROWS
FROM [Sales Star Schema];

并返回异常: &#39; [创建日期]。[2017]&#39;计算成员不能用作另一个计算成员的父成员。

2017年在聚合表中不包含任何度量值,但如果我尝试这样的查询:

WITH 
  MEMBER [Creation Date].[2016].[2016/01].[2016/01].[2016/01/11] AS 
    Aggregate
    (
      Filter
      (
        [Creation Date].[Minute].MEMBERS
       ,
          [Creation Date].[Minute].CurrentMember.Name >= '2016/01/11 07:45'
        AND 
          [Creation Date].[Minute].CurrentMember.Name <= '2016/01/11 23:59'
      )
    ) 
SELECT 
  {[Measures].[Sales Count]} ON COLUMNS
 ,{[Creation Date].[2016].[2016/01].[2016/01].[2016/01/11]} ON ROWS
FROM [Sales Star Schema];

此查询返回正确的值,因为汇总的视图包含2016年,2016/01年度,2016/01/11日的值。 我如何更改我的查询结构,以便它在2017年的值中返回我不是例外,但是空值?

1 个答案:

答案 0 :(得分:0)

计算成员是所选层次结构的[All]成员的子项...但是,如果你打扮它们总是如此,那么只需将它们明确地放在脚本中以避免混淆。

所以我假设有一个名为[Year]的层次结构:

WITH 
  MEMBER [Creation Date].[Year].[All].[2016/01/11] AS 
    Aggregate
    (
      Filter
      (
        [Creation Date].[Minute].MEMBERS
       ,
          [Creation Date].[Minute].CurrentMember.Name >= '2016/01/11 07:45'
        AND 
          [Creation Date].[Minute].CurrentMember.Name <= '2016/01/11 23:59'
      )
    ) 
  MEMBER [Creation Date].[Year].[All].[2017/01/11] AS 
    Aggregate
    (
      Filter
      (
        [Creation Date].[Minute].MEMBERS
       ,
          [Creation Date].[Minute].CurrentMember.Name >= '2017/01/11 07:45'
        AND 
          [Creation Date].[Minute].CurrentMember.Name <= '2017/01/11 23:59'
      )
    ) 
SELECT 
  {[Measures].[Sales Count]} ON COLUMNS
 ,{
   [Creation Date].[Year].[All].[2016/01/11],
   [Creation Date].[Year].[All].[2017/01/11] 
  } ON ROWS
FROM [Sales Star Schema];