Ошибка многомерных выражений отфильтрованных параметров

Новичок в mdx и попытка отфильтровать один параметр. У меня есть следующее,

WITH MEMBER [Measures].[ParameterCaption] AS  IIF(IsEmpty([Measures].[Charge Count]),null, [Payment].[Description].CurrentMember .MEMBER_CAPTION)
MEMBER [Measures].[ParameterValue] AS  IIF(IsEmpty([Measures].[Charge Count]), null, [Payment].[Description].CurrentMember.UniqueName)
MEMBER [Measures].[ParameterLevel]  AS  IIF(IsEmpty([Measures].[Charge Count]), null, [Payment].[Description].CurrentMember .Level .Ordinal)
SELECT
{ [Measures].[ParameterCaption],
  [Measures].[ParameterValue], 
  [Measures].[ParameterLevel] } ON COLUMNS
, NONEMPTY ([Primary].[Description].ALLMEMBERS, [Measures].[Charge Count]) ON ROWS
FROM (SELECT (STRTOSET(@Client, CONSTRAINED) ON COLUMNS
              FROM [DACUBE]))

с ошибкой на предпоследней строке с 'ON'. Все кажется правильным, кроме этой ошибки. Может кто-нибудь сказать мне, где я ошибаюсь?


person mrbungle    schedule 27.05.2015    source источник


Ответы (1)


Я думаю, что ваши фигурные скобки не совсем правильные - попробуйте следующее:

WITH 
  MEMBER [Measures].[ParameterCaption] AS 
    IIF
    (
      IsEmpty([Measures].[Charge Count])
     ,null
     ,[Payment].[Description].CurrentMember.Member_Caption
    ) 
  MEMBER [Measures].[ParameterValue] AS 
    IIF
    (
      IsEmpty([Measures].[Charge Count])
     ,null
     ,[Payment].[Description].CurrentMember.UniqueName
    ) 
  MEMBER [Measures].[ParameterLevel] AS 
    IIF
    (
      IsEmpty([Measures].[Charge Count])
     ,null
     ,[Payment].[Description].CurrentMember.Level.Ordinal
    ) 
SELECT 
  {
    [Measures].[ParameterCaption]
   ,[Measures].[ParameterValue]
   ,[Measures].[ParameterLevel]
  } ON COLUMNS
 ,NonEmpty
  (
    [Primary].[Description].ALLMEMBERS
   ,[Measures].[Charge Count]
  ) ON ROWS
FROM 
(
  SELECT 
    StrToSet
    (@Client
     ,CONSTRAINED
    ) ON COLUMNS
  FROM [DACUBE]
);
person whytheq    schedule 28.05.2015