Здравствуйте!
Есть MDX-запрос
Получаем такой результат по дням
Но тут задачка интересная, которую решаю. Нужно промаркировать строки, где идет снижение цены от базовой цены больше чем на 9%. То есть маркируем акции. Написал MDX-запрос и завис.
Результат должен быть таким.
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 [Предыдущая маркировка]?
Пока игнорируем такие случаи:
- в первой строке снижение цены, то есть акция
- двойное снижение цен (которые больше дельты)
- двойное повышение цен (которые больше дельты) после снижения цен
- само повышение цен
- в какой то один день повышение цен от базовой (не акционной) цены.
Есть MDX-запрос
+MDX-запрос |
Получаем такой результат по дням
|
Но тут задачка интересная, которую решаю. Нужно промаркировать строки, где идет снижение цены от базовой цены больше чем на 9%. То есть маркируем акции. Написал MDX-запрос и завис.
+MDX-запрос |
Результат должен быть таким.
|
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 [Предыдущая маркировка]?
Пока игнорируем такие случаи:
- в первой строке снижение цены, то есть акция
- двойное снижение цен (которые больше дельты)
- двойное повышение цен (которые больше дельты) после снижения цен
- само повышение цен
- в какой то один день повышение цен от базовой (не акционной) цены.