在mdx中设置的名称中使用子多维数据集

时间:2015-02-06 16:21:09

标签: filter mdx

在AdventureWork2012中,我写了这个查询:

 select  
    [Measures].[Internet Sales Amount] on columns,
    [Ship Date].[Calendar Year].[Calendar Year] .members on rows
 from 
    [Adventure Works]
 where
    [Sales Territory].[Sales Territory Country].&[Australia];

但我想在多维立方体中的命名集中编写此查询。 我无法使用过滤功能,因为我无法根据其他维度过滤维度。我搜索了很多,我发现像这样使用子立方体:

select  [Measures].[Internet Sales Amount] on columns,
        [Ship Date].[Calendar Year].[Calendar Year] .members on rows
 from 
    (Select [Sales Territory].[Sales Territory Country].&[Australia] on columns from [Adventure Works])

但我想在我的立方体中创建一个命名集,以便为澳大利亚显示轴上的年份。但我不知道如何在我的命名集中编写子立方体。请帮帮我。

1 个答案:

答案 0 :(得分:0)

这是你需要的那种Set吗?

 WITH SET [OzzieYears] AS
      NonEmpty(
         [Ship Date].[Calendar Year].[Calendar Year].members,
         (
           [Sales Territory].[Sales Territory Country].&[Australia]
          ,[Measures].[Internet Sales Amount] 
         ) 
      )

 SELECT  {} on 0,
         [OzzieYears] on 1
 FROM    [Adventure Works]

要在多维数据集脚本中创建,请按照以下步骤进行操作:https://msdn.microsoft.com/en-us/library/ms166594.aspx

WITH子句中的表达式应该有帮助。 NonEmpty函数返回SET

NonEmpty(
   [Ship Date].[Calendar Year].[Calendar Year].members,
   (
     [Sales Territory].[Sales Territory Country].&[Australia]
    ,[Measures].[Internet Sales Amount] 
   ) 
)

我不会玩多维数据集脚本,但我猜你可以添加这样的内容:

CREATE SET CURRENTCUBE.[OzzieYears]
 AS NonEmpty(
         [Ship Date].[Calendar Year].[Calendar Year].members,
         (
           [Sales Territory].[Sales Territory Country].&[Australia]
          ,[Measures].[Internet Sales Amount] 
         ) 
      ), DISPLAY_FOLDER = 'Sets'  ;