Как получить комбинацию количества мер с использованием одного и того же измерения

как я могу получить всю комбинацию количества измерений измерений в многомерных выражениях. На изображении ниже я получаю индивидуальный счетчик значений, но как я могу получить комбинацию значений счетчиков. Скажем, у меня есть индивидуальное количество значений для 262210 и 198 DrKey Dimension. Мне нужна комбинация значений, например 1) 262 и 210 вместе с количеством мер 2) 262 и 198 вместе с количеством мер 3) 198 и 210 вместе с количеством мер 4) 262, 210 и 198 вместе с количеством мер  введите описание изображения здесь

Мой запрос ниже:

WITH 
  MEMBER DrKey AS 
    [DimPopulation].[Population Key].CurrentMember.Member_Key 
  MEMBER [Measures].[DrList] AS 
    NonEmpty
    (
      {[DimPopulation].[Population Key].&[262], [DimPopulation].[Population Key].&[210]}
     ,[Measures].[DrPatientKeyCnt]
    ) 
SELECT 
  {
    DrKey
   ,[Measures].[DrPatientKeyCnt]
   ,DrList
  } ON COLUMNS
 ,NonEmpty
  (
    {
      [DimPopulation].[Population Key].&[262]
     ,[DimPopulation].[Population Key].&[210]
     ,[DimPopulation].[Population Key].&[198]
    }
   ,[Measures].[DrPatientKeyCnt]
  ) ON ROWS
FROM [abc]
WHERE 
  (
    [DimAnchorDate].[Date Key].&[20141031]
   ,[DimReport].[Report Key].&[1]
  );

person mohan111    schedule 08.12.2014    source источник
comment
подняли за такой красиво изложенный вопрос (на самом деле еще не читал!)   -  person whytheq    schedule 08.12.2014
comment
Что такое DrList? Граф?   -  person whytheq    schedule 08.12.2014
comment
DrList означает, что члены объединения измеряют количество, например 262 и 210, вместе с количеством измерений.   -  person mohan111    schedule 09.12.2014
comment
но у вас уже есть 262, 210 и т. д. НА РЯДАХ по отдельности, так что, может быть, вам нужно убрать этот раздел?   -  person whytheq    schedule 10.12.2014
comment
Наконец, я нашел решение, используя наборы WITH SET FirstSet AS NonEmpty ([DimPatient]. [Ключ пациента]. [Ключ пациента] .MEMBERS, ([Measures]. [DrPatientKeyCnt], [DimPopulation]. [Population Key]. & [190] ]))   -  person mohan111    schedule 15.12.2014


Ответы (2)


Ошибка все еще отображается?

//WITH 
  //MEMBER DrKey AS 
    //[DimPopulation].[Population Key].CurrentMember.Member_Key 

WITH
 MEMBER [Measures].[DrList] AS 
    NonEmpty
    (
      {[DimPopulation].[Population Key].&[262], [DimPopulation].[Population Key].&[210]}
     ,[Measures].[DrPatientKeyCnt]
    ) 


SELECT 
  {
    //DrKey,
   [Measures].[DrPatientKeyCnt]
   ,DrList
  } ON COLUMNS
 ,NonEmpty
  (
    {
      [DimPopulation].[Population Key].&[262]
     ,[DimPopulation].[Population Key].&[210]
     ,[DimPopulation].[Population Key].&[198]
    }
   ,[Measures].[DrPatientKeyCnt]
  ) ON ROWS
FROM [abc]
WHERE 
  (
    [DimAnchorDate].[Date Key].&[20141031]
   ,[DimReport].[Report Key].&[1]
  );
person SouravA    schedule 08.12.2014
comment
Просто проверяем: SELECT {[DimPopulation]. [Population Key]. & [262], [DimPopulation]. [Population Key]. & [210]} ON 0, Measures.DrPatientKeyCnt на 1 FROM [abc]. Все нормально работает? - person SouravA; 09.12.2014
comment
Привет, Сурав, спасибо за ваш повтор, он даст мне два набора мер. Но мне нужна вся комбинация наборов единиц измерения, как показано ниже 262, 210, 198, 262 и 210, 210 и 198, 262 и 198, 262 и 210 и 198. - person mohan111; 09.12.2014
comment
У меня есть идея использовать запрос ниже, но все же он дает мне ошибку в предложении iff ... MEMBER [262and210] AS sum ([DimPatient]. [Patient Key]. [Patient Key] .MEMBERS, IIF (([Measures]) . [DrPatientKeyCnt], {[DimPopulation]. [Ключ населения]. & [262], [DimPopulation]. [Ключ населения]. & [210]}) ‹› 0, 1, NULL)) - person mohan111; 09.12.2014
comment
Я просто занимался поиском и устранением основных неисправностей. Совершенно ясно, что существует проблема с вычисляемым членом [DrList]. Запустите его индивидуально, и, возможно, вы лучше поймете, почему он дает ошибку. - person SouravA; 09.12.2014
comment
Это также может быть связано с тем, что у вас есть члены из той же иерархии в предложении member, а также в ROWS. Не могли бы вы указать что-нибудь эквивалентное вместо [Population Key] в определении участника? - person SouravA; 09.12.2014
comment
Давайте продолжим это обсуждение в чате. - person mohan111; 09.12.2014

Попробуйте просто использовать функцию aggregate для кортежа:

WITH 
  MEMBER DrKey AS 
    [DimPopulation].[Population Key].CurrentMember.Member_Key 
  MEMBER [Measures].[DrList] AS 
    AGGREGATE(        
      NonEmpty
      (
      {[DimPopulation].[Population Key].&[262], [DimPopulation].[Population Key].&[210]}
     ,[Measures].[DrPatientKeyCnt]
      ) 
    )
SELECT 
  {
    DrKey
   ,[Measures].[DrPatientKeyCnt]
   ,DrList
  } ON COLUMNS
 ,NonEmpty
  (
    {
      [DimPopulation].[Population Key].&[262]
     ,[DimPopulation].[Population Key].&[210]
     ,[DimPopulation].[Population Key].&[198]
    }
   ,[Measures].[DrPatientKeyCnt]
  ) ON ROWS
FROM [abc]
WHERE 
  (
    [DimAnchorDate].[Date Key].&[20141031]
   ,[DimReport].[Report Key].&[1]
  );
person whytheq    schedule 08.12.2014
comment
С AGGREGATE или без него, поведение кортежа по умолчанию будет сводиться к агрегированию, не так ли? - person SouravA; 08.12.2014
comment
Я не уверен насчет этого Сурав - иногда я вынужден использовать Aggregate. - person whytheq; 08.12.2014
comment
Я не увидел никакой разницы для вышеуказанного запроса, хотя при добавлении агрегатной функции по-прежнему отображается ошибка. Это не дает двух кортежей - person mohan111; 09.12.2014
comment
@ mohan111 Я только что добавил агрегатную функцию. Я была просто идеей. - person whytheq; 10.12.2014