Скрипт расчета для проекта SSAS - PullRequest
0 голосов
/ 27 мая 2019

Мне нужно написать сценарий в моем проекте SSAS (расчет куба), который рассчитывает стоимость акций на начало и конец периода на определенную дату.

enter image description here

На этом экране отображается короткая первая таблицамои необработанные данные и вторая таблица показывают мои требуемые значения BI.

Начальная цена (запас) для 2015-02-01 продукта A была 18, а цена за день была 10, поэтому 10*18 = 180 значение stk,

на 2015-02-08 цена для того же продукта была 9, а конечная позиция была 10 (поэтому 9 * 10 = 90) - это стоимость на конец периода.

У меня есть код ниже, но этот скрипт непоказаны необходимые результаты.

 Scope([Measures].[Closing Stock]);                                                                
        This = sum((
        null:[Time].[Year].CurrentMember  *
        null:[Time].[Quarter].CurrentMember *
        null:[Time].[Month Name].CurrentMember *
        null:[Time].[Month].CurrentMember *
        null:[Time].[date].CurrentMember )
       ,[Measures].[Movement Qty]) * Price;                                                                
       FORMAT_STRING ( This ) = "#,#";                                                                
       End Scope;

1 Ответ

0 голосов
/ 04 июня 2019

Насколько я понимаю, вы хотите отобразить оставшиеся акции и их стоимость за каждый день.Сценарий ниже будет работать только на дневных уровнях.Я предполагаю, что у вас есть следующий показатель в вашем кубе [Meausres]. [Вступление], [Показатели]. [Кол-во], [Показатели]. [Цена], и у вас есть измерение [дата] и уровень с именем [дата]в этом измерении

with 
member measure.ClosingCount 
as
sum([date].[date].currentmember, [Meausres].[Opening]-[Measures].[Qty])

member measure.ClosingAmount 
as
sum([date].[date].currentmember, [measure].[ClosingCount]*[Measures].[Price] )

Редактировать на основе комментария

with 
    member measure.ClosingCount 
    as
    sum(([date].[date].currentmember,[Product].[Product].currentmember), [Meausres].[Opening]-[Measures].[Qty])

    member measure.ClosingAmount 
    as
    sum(([date].[date].currentmember,[Product].[Product].currentmember), [measure].[ClosingCount]*[Measures].[Price] )
...