2017-01-06 13 views
0

У меня есть нетрадиционный куб с одним измерением под названием «RowNumber» и пять мер, называемых «Col0», «Col1» и т. Д. Каждая координата куба загружается строковыми значениями, такими как «Value14» или «Value3».Как получить только уникальные меры с использованием MDX?

В каждом такте будет повторы одного и того же значения строки, так что если я исполню

SELECT [Measures].[Col2] ON 0, [RowNumber].[Row10]:[RowNumber].[Row14] ON 1 FROM [myCube] 

я получаю эти результаты:

 Col2 
Row10 Value5 
Row11 Value0 
Row12 Value0 
Row13 Value19 
Row14 Value6 

Вы можете увидеть в таблице выше, что есть две записи Value0. То, что я хочу, чтобы получить только уникальные значения из всех Col2, независимо от RowNumber, как это:

Col2 
Value5 
Value0 
Value19 
Value6 

Я ценю это нетрадиционное использование куба, так что, может быть, это не представляется возможным. Однако получение уникальных значений с одной меры не кажется невозможным, поэтому я надеюсь, что есть способ сделать это.

Заранее спасибо.

+0

Услуги анализа Многомерные или табличные? – GregGalloway

+0

Можете ли вы изменить куб? Можете ли вы построить измерение из col2? – GregGalloway

+0

Вы должны обязательно изменить свой куб и добавить измерение для Col2, как уже было сказано GregGalloway – mxix

ответ

0

MDX на самом деле не предназначен для такого рода вещей. Но это возможно:

With 
Set [OrderedRows] as 
Order(NonEmpty([RowNumber].[Row10]:[RowNumber].[Row14],[Measures].[Col2]),[Measures].[Col2]) 

Member [Measures].[Rank] as 
Rank([RowNumber].[RowNumber].CurrentMember, [OrderedRows]) 

Member [Measures].[Col2Unique] as 
IIF(
    ([OrderedRows].Item([Measures].[Rank] - 2),[Measures].[Col2]) = [Measures].[Col2], 
    NULL, 
    [Measures].[Col2] 
) 

Select {[Measures].[Col2],[Measures].[Col2Unique]} on 0, 
Non Empty [OrderedRows] on 1 
From [myCube]