|
|
|
Вопрос по MDX-запросу.
|
|||
|---|---|---|---|
|
#18+
Здравствуйте! Есть MDX-запрос MDX-запрос Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. Получаем такой результат по дням Код ТТКод продукцииДатаОтгрузки штОтгрузки сумма без НДСЦенаКод ТТ1Код продукции101.01.20181100100Код ТТ1Код продукции102.01.20181100100Код ТТ1Код продукции103.01.2018nullnullnullКод ТТ1Код продукции104.01.2018216080Код ТТ1Код продукции105.01.2018324080Код ТТ1Код продукции106.01.20181100100.................. Но тут задачка интересная, которую решаю. Нужно промаркировать строки, где идет снижение цены от базовой цены больше чем на 9%. То есть маркируем акции. Написал MDX-запрос и завис. MDX-запрос Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. Результат должен быть таким. Код ТТКод продукцииДатаОтгрузки штОтгрузки сумма без НДСЦенаПредыдущая ценаОтклонениеПредыдущая маркировкаМаркировкаКод ТТ1Код продукции101.01.20181100100nullnullnullnullКод ТТ1Код продукции102.01.201811001001000nullnullКод ТТ1Код продукции103.01.2018nullnullnullnullnullnullnullКод ТТ1Код продукции104.01.2018216080100-0.2nullДаКод ТТ1Код продукции105.01.2018324080800ДаДаКод ТТ1Код продукции106.01.20181100100800.25Даnull.............................. 1. Данные выгружены по дням. Есть поле [Предыдущая цена], который вытягивает цены предыдущей строки, то есть цена предыдущего дня. Период в субкубе указан с первого 1 января 2018. Первая строка берется из 31.12.2017 г. или 01.01.2018? 2. Отгрузки бывают не ежедневные, поэтому предыдущая цена должна игнорировать null. То есть из таблицы: для 4-ой строки предыдущая цена берется из второй строки. Как правильно написать MEMBER? 3. Есть MEMBER [Маркировка]. Улавливает снижение цены больше 9% и маркирует. Если повышение цены до 9 % нету, но в предыдущей строке есть маркировка, то продолжает маркировать. В остальном случае не маркирует. Тут формула смотрит на предыдущую маркировку. Также игнорируются строки null. То есть MEMBER [Маркировка] должна посмотреть на текущий MEMBER [Предыдущая маркировка], а MEMBER [Предыдущая маркировка] берет из предыдущей строки с учетом null MEMBER [Маркировка].Как правильно написать MEMBER? Как правильно написать MEMBER [Предыдущая маркировка]? Пока игнорируем такие случаи: - в первой строке снижение цены, то есть акция - двойное снижение цен (которые больше дельты) - двойное повышение цен (которые больше дельты) после снижения цен - само повышение цен - в какой то один день повышение цен от базовой (не акционной) цены. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2018, 15:02 |
|
||
|
Вопрос по MDX-запросу.
|
|||
|---|---|---|---|
|
#18+
ferzmikk3. Есть MEMBER [Маркировка]. Улавливает снижение цены больше 9% и маркирует. Если повышение цены до 9 % нету, но в предыдущей строке есть маркировка, то продолжает маркировать. В остальном случае не маркирует. Тут формула смотрит на предыдущую маркировку. Также игнорируются строки null. То есть MEMBER [Маркировка] должна посмотреть на текущий MEMBER [Предыдущая маркировка], а MEMBER [Предыдущая маркировка] берет из предыдущей строки с учетом null MEMBER [Маркировка].Как правильно написать MEMBER? Как правильно написать MEMBER [Предыдущая маркировка]? Реально ли такую задачу решить в MDX? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2018, 08:58 |
|
||
|
|

start [/forum/topic.php?fid=49&msg=39712789&tid=1857757]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
21ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
48ms |
get tp. blocked users: |
2ms |
| others: | 245ms |
| total: | 359ms |

| 0 / 0 |

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