更好的MDX语法

时间:2015-08-12 17:14:09

标签: mdx mdxstudio mdxclient

如果有更好的方法来编写MDX

SELECT {         [Measures].[Label], 
        NonEmpty [Measures].[UniqueName],
        NonEmpty [Measures].[TargetName],
                 [Measures].[Place]
        } ON COLUMNS ,
NON EMPTY 
      [Geography].[Country].ALLMEMBERS ON ROWS FROM [Adventure Works]

我想仅为少量度量添加非空,这取决于维度,例如[Street Dimension]。[street]。[street name] =“abcd”。 因此,除了街道名称匹配之外,我可以检查街道名称并添加非空状态。

1 个答案:

答案 0 :(得分:1)

更像这样:

SELECT {[Measures].[Label], 
        [Measures].[UniqueName],
        [Measures].[TargetName],
        [Measures].[Place]} ON COLUMNS ,
      nonempty(
      nonempty(
        [Geography].[Country].ALLMEMBERS
        ,[Measures].[UniqueName])
        ,[Measures].[TargetName]
      ) 
ON ROWS 
FROM [Adventure Works]

要将NonEmpty函数定向到街道层次结构的特定成员,您可以使用元组作为每个NonEmpty的第二个参数:

SELECT 
    {
      [Measures].[Label], 
      [Measures].[UniqueName],
      [Measures].[TargetName],
      [Measures].[Place]
    } ON COLUMNS,
      NonEmpty(
          NonEmpty(
            [Geography].[Country].ALLMEMBERS
            ,(
              [Measures].[UniqueName]
             ,[Street Dimension].[street].[street name].[abcd]
             )
          )
        ,(
          [Measures].[TargetName]
         ,[Street Dimension].[street].[street name].[abcd]
         )
      ) 
  ON ROWS 
FROM [Adventure Works];