2013-05-03 3 views
1

У меня есть куб с мерой под названием FactSales, в которой есть записи за каждый день.SSAS Calculated Member

У меня есть три измерения, дата, клиент и тип клиента.

Каждая строка FactSales связана с датой и клиентом по внешнему ключу. клиент связан с типом клиента по внешнему ключу.

Из этого я могу выплюнуть весь показатель продаж для каждого клиента на каждой дате, которая отличная.

У меня есть несколько типов: typeA, typeB, typeC, typeD, typeE.

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

То, что я на данный момент что-то вроде

Case 
    When IsEmpty([Measures].[FactSales]) or [Customer].[CustomerType].currentmember <> [Customer].[CustomerType].&[typeA] 
    Then null 
    ELSE ([Customer].[CustomerType].&[typeA], [Measures].[FactSales]) 
END 

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

Может ли кто-нибудь помочь? Возможно, я недостаточно хорошо объяснил свое мнение, поэтому, пожалуйста, дайте мне знать, если вам нужна дополнительная информация.

ответ

1

Почему вы пытаетесь это сделать? Нехорошо хранить какие-либо вычисления, которые не связаны с одним фактом, фактическая таблица данных должна соответствовать только одному системному факту (заказ, задание и т. Д.), И с агрегацией вы сможете получать данные на основе любого измерения. Ваша текущая структура хорошо, и вы можете легко получить расчеты, разрезая куб по размеру типа клиента.