2015-11-06 3 views
1

Я работаю на финансовом кубе с вычисляемого элемента, используя следующую формулу MDX:SSAS MDX Роллинг Всего Different Дата Ranges

IIF 
(
    [Chart Of Accounts].[Account Sub Group].CurrentMember 
    = 
    [Chart Of Accounts].[Account Sub Group].&[RESULT-CURRENT YEAR], 
    [Measures].[Amount GL YTD], 
    SUM 
    (
     ParallelPeriod 
        (
        [Date].[Year - Quarter - Month - Date].[Year], 
        100, 
        [Date].[Year - Quarter - Month - Date].CurrentMember 
        ) 
     : 
     [Date].[Year - Quarter - Month - Date].CurrentMember, 
     [Measures].[Amount GL] 
    ) 
) 

Все работает, как ожидалось. [RESULTS-CURRENT YEAR] отображает правильное значение для YTD, а каждая другая запись отображает итоговые значения с начала времени. За исключением накопительного пакета акций, который находится в [RESULTS-CURRENT YEAR]. Он также добавляет итоги с начала времени, которые накапливают общее эквити на моей сводной таблице.

Любые идеи о том, как я могу исправить это?

Explanation Summary

+1

'для собственного капитала накопительного пакета, который [РЕЗУЛЬТАТЫ текущего года] является in.' запроса Кроме вас, чтобы бросить больше света на это .. – SouravA

+0

я связан образом в оригинальный сообщение. – user3652818

ответ

1

Я не понимаю вопрос, но одна вещь, которую я замечаю, что вы использовали = но сигнал равенства членов mdx следует использовать IS

IIF 
(
    [Chart Of Accounts].[Account Sub Group].CurrentMember 
    IS 
    [Chart Of Accounts].[Account Sub Group].&[RESULT-CURRENT YEAR], 
    [Measures].[Amount GL YTD], 
    SUM 
    (
     ParallelPeriod 
        (
        [Date].[Year - Quarter - Month - Date].[Year], 
        100, 
        [Date].[Year - Quarter - Month - Date].CurrentMember 
        ) 
     : 
     [Date].[Year - Quarter - Month - Date].CurrentMember, 
     [Measures].[Amount GL] 
    ) 
) 

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

[Measures].[exploratory] AS 
    [Date].[Year - Quarter - Month - Date].CurrentMember.member_caption 
[Measures].[exploratory2] AS 
    [Chart Of Accounts].[Account Sub Group].CurrentMember.member_caption 

Также мне интересно, если вместо того, 100 лет назад, может быть, вы могли бы упростить с помощью null:

IIF 
(
    [Chart Of Accounts].[Account Sub Group].CurrentMember 
    IS 
    [Chart Of Accounts].[Account Sub Group].&[RESULT-CURRENT YEAR], 
    [Measures].[Amount GL YTD], 
    SUM 
    (
     NULL:[Date].[Year - Quarter - Month - Date].CurrentMember, 
     [Measures].[Amount GL] 
    ) 
) 

Редактировать

Я подозреваю, что на Гран-Tot al row текущий элемент иерархии [Chart Of Accounts].[Account Sub Group] является членом [All], поэтому логическое условие iif является ложным. Вы могли бы попробовать внесение поправки к этому:

IIF 
(
    (
    [Chart Of Accounts].[Account Sub Group].CurrentMember 
    IS [Chart Of Accounts].[Account Sub Group].&[RESULT-CURRENT YEAR] 
) 
    OR 
    (
    [Chart Of Accounts].[Account Sub Group].CurrentMember 
    IS [Chart Of Accounts].[Account Sub Group].[All] 
) 
    ,[Measures].[Amount GL YTD] 
    ,SUM 
    (
     NULL:[Date].[Year - Quarter - Month - Date].CurrentMember, 
     [Measures].[Amount GL] 
    ) 
) 
+0

Я ценю понимание. Вышеупомянутое выражение дает более точные результаты. Проблема, которую я все еще испытываю, заключается в том, что [РЕЗУЛЬТАТ-ТЕКУЩИЙ ГОД] отображается правильно в сводной таблице с суммированием [Amount GL YTD], однако линия Grand Total для Total Equity в сводной таблице суммирует [РЕЗУЛЬТАТЫ-ТЕКУЩИЕ ГОД] с начала времени с [Сумма GL]. Ссылка на изображение, которое у меня было в моем оригинальном посте, должна воспроизводиться визуально. – user3652818

+0

По существу, деталь позиции правильно в моей таблице сводных таблиц Excel, но общая сумма неверна. Строка Grand Total всегда игнорирует ложную часть инструкции IIF. Когда вы вручную суммируете детали товара, вы получаете правильную сумму. – user3652818

+0

'IIF' определенно будет False для Grand Total, потому что логическое условие' IIF' будет False. Я добавил вторую исследовательскую меру к моему ответу - добавьте их в свой куб - затем добавьте меры в ось, чтобы проверить, что возвращает текущий участник. Затем соответствующим образом измените свою меру. – whytheq