Конкатенация строк из Crossjoin в MDX - PullRequest
1 голос
/ 07 февраля 2012
SELECT 
NON EMPTY {[Measures].[Page Views]} ON COLUMNS,
NON EMPTY {
    Crossjoin({[Date Dim.Weekday Hierarchy].[Weekday].Members}, 
              {[Time Dimension.Time Hierarchy].[Hour].Members})
          } ON ROWS
FROM [All Facts]

Код для получения просмотров страниц за день недели. В настоящее время он возвращает данные как это:

воскресенье
...... 0 - 198273
...... 1 - 123987
...... 2 - 128372
...... 3 - 1283712

за каждый час, за каждый день. Как мне получить это, чтобы объединить строки из перекрестного соединения, чтобы он возвращал:

воскресенье 0 - 198273
Воскресенье 1 - 123987
Воскресенье 2 - 128372
Воскресенье 3 - 1283712

Или это должно быть создано как совершенно новая мера?

Ответы [ 2 ]

2 голосов
/ 07 февраля 2012

Извините, я немного спешу, но вы можете использовать mdx вычисленных членов для генерации строки:

 With
  Member MyOutput AS [Date Dim.Weekday Hierarchy].[Weekday].name + " " + [Time Dimension.Time Hierarchy].[Hour] + " " + STR( ([Measures].[Page Views]) )
 SELECT 
  NON EMPTY {[Measures].[MyOutput]} ON COLUMNS,
  NON EMPTY {
    Crossjoin({[Date Dim.Weekday Hierarchy].[Weekday].Members}, 
          {[Time Dimension.Time Hierarchy].[Hour].Members})
      } ON ROWS
  FROM [All Facts]
0 голосов
/ 08 февраля 2012

Нашел решение:

> WITH MEMBER [Measures].[pretty hour] AS [Date Dim.Weekday Hierarchy].[Weekday].CurrentMember.name || " " || [Time Dimension.Time Hierarchy].[Hour].CurrentMember.name 
>   SELECT    
>   NON EMPTY {[Measures].[pretty hour], [Measures].[Page Views]} ON COLUMNS,   
>   NON EMPTY {    
>       Crossjoin({[Date Dim.Weekday Hierarchy].[Weekday].Members},     
>                 {[Time Dimension.Time Hierarchy].[Hour].Members})   
>             } ON ROWS   
>FROM [All Facts]

Вы должны игнорировать заголовки строк, но это дает желаемый результат!:) У @icCube была правильная идея, просто нужен Мондриан ||вместо + и «CurrentMember.name» вместо просто «name»

...