Для создания расчетной меры в MDX, которая будет суммировать значения мер `[промежуточные итоги]` и `[обороты]`, вам необходимо использовать функцию `LastNonEmpty` для получения последних значений итогов на каждую дату, а затем добавить суммы оборотов с этой даты до текущей.
Чтобы исправить вашу проблему с получением даты последних итогов, нужно обеспечить правильное использование функции `Filter` и `Tail`. Вы можете попробовать использовать следующее выражение для получения даты последних итогов, а затем далее применять эту дату для расчета мер.
### Пример создания расчетной меры
1. Определите расчетную меру, которая будет использовать значения `[промежуточные итоги]` и `[обороты]`:
```mdx
WITH
MEMBER [Measures].[Расчетная Мера] AS
IIF(
NOT ISEMPTY([Measures].[итог]),
[Measures].[итог] +
SUM(
[Дата].[год-месяц-дата].[Date Key].
Range(
[Measures].[LastNonEmptyDate],
[Дата].[год-месяц-дата].CurrentMember
),
[Measures].[обороты]
),
[Measures].[LastNonEmptyDate]
)
SELECT
{ [Measures].[Расчетная Мера] } ON COLUMNS,
[Дата].[год-месяц-дата].[Date Key].MEMBERS ON ROWS
FROM [test]
```
2. Для получения последних известный итогов, вы можете написать следующую меру, чтобы получить последние известные значения, как вы делали ранее, но учтя, что при использовании `Tail` вам нужно скорректировать параметры фильтрации:
```mdx
WITH
MEMBER [Measures].[LastNonEmptyDate] AS
IIF(
NOT IsEmpty([Measures].[итог]),
[Дата].[год-месяц-дата].CurrentMember.Member_Value,
Tail(
Filter(
[Дата].[год-месяц-дата].[Date Key].
Range(
[Дата].[год-месяц-дата].[Date Key].FirstChild,
[Дата].[год-месяц-дата].CurrentMember
),
NOT IsEmpty([Measures].[итог])
),
1
).Item(0).Member_Value
)
SELECT
{ [Measures].[LastNonEmptyDate] } ON COLUMNS,
[Дата].[год-месяц-дата].[Date Key].MEMBERS ON ROWS
FROM [test]
```
### Построение полного запроса
Теперь объедините обе части и создайте итоговую меру, суммирующую значения двух мер. Это одновременно обеспечит получение последних известных итогов и сумму оборотов, необходимых для работы с каждой датой.
Примечание: ориентируйтесь на структуру вашей модели данных при использовании выражений и функций, так как синтаксис может варьироваться в зависимости от настроек. Обязательно протестируйте каждое выражение по отдельности, чтобы убедиться, что оно работает, прежде чем интегрировать его в полный запрос.