|
|
|
Реализовать аналог LastNonEmpty в MDX
|
|||
|---|---|---|---|
|
#18+
Доброго времени суток спецы MDX. Установлен Ms2012 Standart, в связи с чем не работает такая функция как LastNonEmpty. В таблице с движениями и остатками (движения +остаток на 1 число каждого месяца) создан столбец "Остаток0" (по умолчанию значение NULL). Ранее (при реализации Olap на другой работе) применял к "Остаток0" - LastNonEmpty, а затем определял результат в мере (см ниже); ([Дата].[День].[День], [Measures].[Остаток0]) = sum(mtd(), [Measures].[Движения]) все работало, сейчас возможности применить LastNonEmpty НЕТ, попробовал применить LastChild, но результат не тот.... Подскажите, как можно реализовать LastNonEmpty в мере, если можно, то русскоязычным примером. Данная мера считает остаток на каждый день за выбранные период. Использую mtd(), так как, это быстрее чем считать движения с начала времен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2019, 21:30 |
|
||
|
Реализовать аналог LastNonEmpty в MDX
|
|||
|---|---|---|---|
|
#18+
Baters, А где в вашей формуле используется остаток на начало месяца? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2019, 21:47 |
|
||
|
Реализовать аналог LastNonEmpty в MDX
|
|||
|---|---|---|---|
|
#18+
bideveloper, В мере ни где не используется, это я описал логику хранимых данных в источнике (вдруг, кто то по другому остатки добывает и есть другие варианты). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2019, 22:31 |
|
||
|
Реализовать аналог LastNonEmpty в MDX
|
|||
|---|---|---|---|
|
#18+
Ищете по форуму, задача неоднократно обсуждалась. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2019, 23:28 |
|
||
|
Реализовать аналог LastNonEmpty в MDX
|
|||
|---|---|---|---|
|
#18+
Baters, А как тогда может получится правильный остаток? Ведь mtd считает с начала месяца. У меня на проекте считается с начала времен и мера LastChild, все работает корректно и быстро. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2019, 23:29 |
|
||
|
Реализовать аналог LastNonEmpty в MDX
|
|||
|---|---|---|---|
|
#18+
Baters, Или приплюсуйте в формуле остаток на начало месяца, тоже должно корректно работать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2019, 23:46 |
|
||
|
Реализовать аналог LastNonEmpty в MDX
|
|||
|---|---|---|---|
|
#18+
bideveloper, да, mtd() считает с начала месяца- начало месяца=остаток на 1 число, прибавляем все приходы и расходы и получаем актуальный остаток на любой момент. То, что у вас LastChild работает корректно...а как вы сделали иерархию дат (день-мес-год)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2019, 08:51 |
|
||
|
Реализовать аналог LastNonEmpty в MDX
|
|||
|---|---|---|---|
|
#18+
Sutasu, так смотрю, но учитывая, что MDX я юзал последний раз года три назад мне, это мало помогает чутье подсказывает, что вот это близко (Tail(nonempty((null:[Периоды].[Дата].CurrentMember),[Measures].[FACT]),1),[Measures].FACT]).item(0) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2019, 09:22 |
|
||
|
Реализовать аналог LastNonEmpty в MDX
|
|||
|---|---|---|---|
|
#18+
Baters, Даты обычно делаю с помощью таблицы, это самый гибкий способ Date_id Date DateDescription CalendarYear CalendarYearLabel CalendarHalfYear CalendarHalfYearLabel CalendarQuarter CalendarQuarterLabel CalendarMonth CalendarMonthLabel CalendarISOYear 19000101 1900-01-01 00:00:00.000 1900//01/01 1900 1900 г. 19001 1 полугодие 1900 г. 19001 1 кв. 1900 г. 190001 Январь 1900 г. 1900 20000101 2000-01-01 00:00:00.000 2000/01/01 2000 2000 г. 20001 1 полугодие 2000 г. 20001 1 кв. 2000 г. 200001 Январь 2000 г. 1999 20070101 2007-01-01 00:00:00.000 2007/01/01 2007 2007 г. 20071 1 полугодие 2007 г. 20071 1 кв. 2007 г. 200701 Январь 2007 г. 2007 20070102 2007-01-02 00:00:00.000 2007/01/02 2007 2007 г. 20071 1 полугодие 2007 г. 20071 1 кв. 2007 г. 200701 Январь 2007 г. 2007 Т.е. для иерархии целые значения, например 12 сентября 2018 года будет: Дата_id = 20180912 Месяц = 201809 Год = 2018 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2019, 12:50 |
|
||
|
Реализовать аналог LastNonEmpty в MDX
|
|||
|---|---|---|---|
|
#18+
bideveloper, у меня так и реализовано)) меня не устраивает LastChild, тем, что если я выберу 2019 год (тупо год закину в строки), то остаток получается NULL ибо LastChild у года 20191200, а он NULL. Нужно получать именно LastNonEmpty, даже на уровне итогов((( (Tail(nonempty((null:[Периоды].[Дата].CurrentMember),[Measures].[FACT]),1),[Measures].FACT]).item(0) тоже не помогло(( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2019, 13:15 |
|
||
|
Реализовать аналог LastNonEmpty в MDX
|
|||
|---|---|---|---|
|
#18+
Baters, 20191200 - у меня нет таких дат в таблице и LastChild года будет 20191231 и он не Null (а по моей формуле сумма от начала времен до 20191231) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2019, 13:49 |
|
||
|
Реализовать аналог LastNonEmpty в MDX
|
|||
|---|---|---|---|
|
#18+
Baters, Проверьте вашу иерархию дат, что связи корректны. И проверьте, что она указана в проекте именно как измерение времени (чтобы Analysis Services знал по какому измерению считать LastChild). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2019, 13:54 |
|
||
|
Реализовать аналог LastNonEmpty в MDX
|
|||
|---|---|---|---|
|
#18+
Baters, вернее так, LastChild года будет LastChild от последнего месяца года, т. е. 201912, что равно значению меры от 20191231. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2019, 13:56 |
|
||
|
Реализовать аналог LastNonEmpty в MDX
|
|||
|---|---|---|---|
|
#18+
bideveloper, связь вроде норм (Дт- М/Г-Г). А не могли бы вы скинуть меру которой просчитываете остаток с начала времен? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2019, 08:19 |
|
||
|
|

start [/forum/topic.php?fid=49&gotonew=1&tid=1857595]: |
0ms |
get settings: |
10ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
151ms |
get topic data: |
11ms |
get first new msg: |
7ms |
get forum data: |
2ms |
get page messages: |
51ms |
get tp. blocked users: |
1ms |
| others: | 254ms |
| total: | 504ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...