|
|
|
Таблица с одинаковой размерностью колонок для каждого месяца
|
|||
|---|---|---|---|
|
#18+
Здравствуйте! Есть такой MDX-запрос. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. Выгружает отгрузки по месяцам с 1 января предыдущего года (от базового) по 31 декабря базового года. Всего 24 месяца. Обратите внимание, что базовый (анализируемый) год это не текущий год. Этот запрос одинаково запускается для каждого месяца. Например, если в ноябре 2016 (как текущий) выгружаем данные, где базовый месяц - сентябрь 2016, то смотрим еще и за октябрь 2016 года. То есть помимо базового месяца (Сентябрь 2016) смотрим еще и последующий месяц (Октябрь 2016). Другой случай, если в феврале 2017 года (как текущий) выгружаем данные за Декабрь 2016, то важно посмотреть последующий месяц - Январь 2017. Для того чтобы посмотреть за январь 2017 то надо в запросе писать не "-24", а "-25". Но проблема в том, что если выгружать в 2016 году, то в атрибуте [Время].[Месяц].[Месяц] отсутствуют элементы (месяцы) 2017 года, а если в 2017 - присутствуют. Если написать в запросе "-25" и запускать в ноябре 2016, то запрос то запустится, но не будет колонки за Январь 2017. Должна хотя быть пустая колонка. Важно чтобы MDX-запрос был неизменным, то есть в каждом месяце в результате получать таблицу c одинаковой размерностью (по колонкам). Как быть в этой ситуации? Насколько возможно пропиcать такой логический нюанс в MDX? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2017, 12:21 |
|
||
|
Таблица с одинаковой размерностью колонок для каждого месяца
|
|||
|---|---|---|---|
|
#18+
ferzmikk, Прочитал три раза так и не смог разобрать. Можно пример того, что у вас сейчас есть (как результат) и должно быть? Желательно визульно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2017, 01:41 |
|
||
|
Таблица с одинаковой размерностью колонок для каждого месяца
|
|||
|---|---|---|---|
|
#18+
SkyTodferzmikk, Прочитал три раза так и не смог разобрать. Можно пример того, что у вас сейчас есть (как результат) и должно быть? Желательно визульно. В общем логика такая. Что анализируем отгрузки за позапрошлый месяц (как базовый месяц ) и за предыдущий месяц (как следующий за базовым ) от текущего. Важно, чтобы в каждом месяце в результате выгружалось одинаковое количество колонок-месяцев. Выгружаем данные за 2 года (24 месяца): с января 2015 по декабрь 2016. Если запускать такой запрос в ноябре 2016 года Код: sql 1. 2. 3. 4. 5. 6. 7. 8. то получаем такой результат ТТ Янв 2015 Февр 2015 Март 2015 Апр 2015... Сент 2016 Окт 2016 Нояб 2016 Дек 2016ТТ110012010595...8910139null Получаем 24 колонки-месяцев. Очевидно, что ноябрь 2016 еще не закончился (отгрузки не большие) и декабрь 2016 не наступил (отгрузки null)). Но фишка тут в том, что когда в феврале 2017 анализируешь декабрь 2016 как базовый месяц, то следующий месяц за базовым - это январь 2017. Тут включается 25-й месяц. А если этот запрос запустить в феврале 2017, где в запросе в функции LastPeriods в первом параметре указать 25 месяцев , то результат будет таким ТТ Янв 2015 Февр 2015 Март 2015 Апр 2015... Сент 2016 Окт 2016 Нояб 2016 Дек 2016 Янв 2017ТТ110012010595...8910118012089 Если в ноябре 2016 надо выгружать не 24 месяцев, а 25, то результат надо получить таким, ТТ Янв 2015 Февр 2015 Март 2015 Апр 2015... Сент 2016 Окт 2016 Нояб 2016 Дек 2016 Янв 2017ТТ110012010595...8910139nullnull Если этот запрос в функции LastPeriods в первом параметре указать не 24 , а 25 месяцев и запустить также в ноябре 2016, то запрос запустится, но результат будет таким же как в первом варианте: не будет колонки янв 2017. Потому что в тот момент отсутствуют элементы (месяцы) 2017 года в атрибуте "[Время].[Месяц Года].[Месяц Года]" не как в см. скриншоте . Тут фишка в том, что колонка 25 месяц не отображается как пустая, если выгружать в 2016 году (всего 24 колонок-месяцев), а в 2017 году отображается (всего 25 колонок месяцев). И получается количество колонок имеет разную размерность (24 или 25). Как тут быть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2017, 14:01 |
|
||
|
Таблица с одинаковой размерностью колонок для каждого месяца
|
|||
|---|---|---|---|
|
#18+
ferzmikk, Я вот не понимаю, по какому принципу ноябрь возвращает 39, потом 180, а потом снова 39? Это нужно делать снапшот данных? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2017, 11:14 |
|
||
|
Таблица с одинаковой размерностью колонок для каждого месяца
|
|||
|---|---|---|---|
|
#18+
SkyTodferzmikk, Я вот не понимаю, по какому принципу ноябрь возвращает 39, потом 180, а потом снова 39? Это нужно делать снапшот данных? 39 - это возвращаемое число за ноябрь 2016, когда запускаем запрос в ноябре 2016. В тот момент ноябрь 2016 еще не закончился, то есть имеет отгрузки за не законченный месяц. А 180 это возвращаемое число за ноябрь 2016, когда запускаем запрос в феврале 2017. Ноябрь 2016 уже прошел и 180 это отгрузки за полный месяц. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2017, 11:59 |
|
||
|
Таблица с одинаковой размерностью колонок для каждого месяца
|
|||
|---|---|---|---|
|
#18+
ferzmikk, Все равно это ничего не объясняет. Элемент "Нояб 2016" имеет одно значение на сегодня: 180. Как вы хотите извлечь из него 39? Братья по какой-то день? У вас два измерения: дата доставки, дата оформления? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2017, 18:45 |
|
||
|
Таблица с одинаковой размерностью колонок для каждого месяца
|
|||
|---|---|---|---|
|
#18+
SkyTodferzmikk, Все равно это ничего не объясняет. Элемент "Нояб 2016" имеет одно значение на сегодня: 180. Как вы хотите извлечь из него 39? Братья по какой-то день? Логика такая. Что каждый месяц запускается MDX-запрос. И в каждом месяце выгружается таблица с одинаковым количеством колонок. Если выгружать в августе 2016 года, то мы увидим одну колонку - ТТ и 24 колонок-месяцев: отгрузки с 1 января 2015 года по август 2016, а с сентября по декабрь 2016 колонки будут пустыми. Если запускать в октябре 2016, то мы увидим также одну колонку - ТТ и 24 колонок-месяцев: отгрузки с 1 января 2015 года по октябрь 2016, а с ноября по декабрь 2016 колонки будут пустыми. Если запускать в январе 2017 года, то мы увидим также одну колонку - ТТ и 24 колонок-месяцев: отгрузки с 1 января 2015 по 31 декабря 2016. У вас два измерения: дата доставки, дата оформления? Дата доставки и дата оформления для данной отчетности тут не причем. Тут фишка в том, чтобы каждый месяц получать не 24 колонки, а 25. Чтобы присутствовала колонка январь 2017. Но эта колонка отсутствует, если выгружать в 2016 году, и присутствует, если выгружать в 2017. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2017, 15:39 |
|
||
|
Таблица с одинаковой размерностью колонок для каждого месяца
|
|||
|---|---|---|---|
|
#18+
ferzmikk, Может что-то такое (если я правильно понял, конечно): Код: sql 1. 2. 3. 4. 5. 6. 7. Где [Время].[Месяц].&[2016-11-01T00:00:00] - Нояб 2016 (дата запуска) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2017, 19:08 |
|
||
|
|

start [/forum/topic.php?fid=49&msg=39387110&tid=1858400]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
183ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
42ms |
get tp. blocked users: |
1ms |
| others: | 242ms |
| total: | 512ms |

| 0 / 0 |

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