Лучший синтаксис для MDX

Если есть лучший способ написать 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 ответ

Больше похоже на это:

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];
Другие вопросы по тегам