2017-02-16 28 views
0

Здравствуйте, я борюсь с MS SSAS ... упрощен У меня есть две таблицы в моем представлении данных. T1 содержит PK и дату. T2 содержит PK, FK T1 и некоторые числа.Analysis Services - расчетный член - подсчет по размеру диапазон ключей

Я создал измерение от T1 с его двумя атрибутами. Поэтому я могу создать куб для агрегирования данных T2 по дате и идентификатору T1. Пока все хорошо.

Что я хочу сделать дальше, это совокупность только части этих данных. Пример: «Покажите мне агрегированные данные записей T2, которые имеют FK> = 970»

Итак, я попытался написать рассчитанную меру, но не удалось. Я искал в Интернете, но я не нашел ничего не работающего до сих пор ...

Я надеюсь, что кто-то может помочь с подсказкой.

+0

См http://stackoverflow.com/questions/42167709/mdx-and-periodstodate/42168904 Вы хотите, чтобы фильтровать записи или члена с FK> = 970? –

+0

Я хочу собрать всю запись t2, связанную с записями t1 с t1.id> = 970. I sql это было бы что-то вроде: SELECT SUM ([SomeData]) FROM [T2] WHERE [T2]. [FK] IN (SELECT [ID] FROM [T1] WHERE [ID]> = 970) – Felix

+0

Нет способа для этого в MDX, за исключением добавления столбца [ID] в качестве атрибута измерения и фильтрации в разделе Where. В противном случае вы должны добавить новую меру, в которой вы отфильтровываете эти записи. –

ответ

1

Если я правильно понял, ваша дата Размер равен T1.

В вашем измерении у вас должно быть измерение настройки ключа, я предположим, что вы сделали это в столбце PK. В пределах свойств вы можете определить 3 вещи для этого атрибута. KeyColumns NameColumns ValueColumns

Убедитесь, что KeyColumns является PK колонке. И должно быть свойство OrderBy вы должны убедиться, что установлен в положение «Key»

После этого, если ваши PKs являются sequencial (они действительно должны!), Вы можете сделать MDX запрос следующим образом:

SELECT 
{ [Measures].[YOURMEASURE] } ON COLUMNS, 
{ [T1].&[970] : NULL } ON ROWS 
FROM [MyCube] 

EDIT : Несомненно. Добавьте к вашему вычислению в кубе.

CREATE MEMBER CURRENTCUBE.[Measures].[MyOver970Measure] 
AS 
AGGREGATE({ [T1].&[970] : NULL },[Measures].[YOURMEASURE]) 
,VISIBLE=1; 
+0

Можно ли создать меру этого? – Felix

+0

Это именно то, что мне нужно, спасибо большое! – Felix