Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / SSAS like for like анализ / 10 сообщений из 10, страница 1 из 1
17.01.2019, 18:47
    #39761109
Alexey I.G.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SSAS like for like анализ
Добрый день!

Возможно ли как-то реализовать в OLAP кубе, через MDX запрос анализ Like for Like (точка к точке).
Что значит, отображать данные только по тем точкам, которые были в периоде (например сентябрь-октябрь) текущего года и таком же периоде (тоже сентябрь- октябрь) прошлого года
фильтровать еще по бренду, категории, сети и т.д.

Есть у кого-нибудь похожий пример (например в AdventureWorks)? Или может подскажите, какие MDX функции посмотреть?

Спасибо заранее!
...
Рейтинг: 0 / 0
17.01.2019, 19:09
    #39761123
Alexey I.G.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SSAS like for like анализ
уточнение:
если у точки были продажи в одном году только в сентября, а в другом сентябре и октябре - такие не подходят
...
Рейтинг: 0 / 0
17.01.2019, 22:25
    #39761177
Критик
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SSAS like for like анализ
Да, SSAS еще кофе должен готовить за те деньги, что за него просят

Ps напишите sql-запрос
...
Рейтинг: 0 / 0
18.01.2019, 11:24
    #39761349
Voyager_lan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SSAS like for like анализ
Alexey I.G.,

1. если LFL у вас не соотносится со стандартными временными функциями (например,если это касается дней недели между периодами) делаете с календарем дат сопоставление дат периодов LFL
2. пишете MDX с TimeIntelligence -функциями, какие вам нужны на уровне дат с использованием StrToSet (это быстро работать не будет). Определяетесь как будете считать верхние уровни и при необходимости пересчитываете.
...
Рейтинг: 0 / 0
21.01.2019, 13:23
    #39762335
Alexey I.G.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SSAS like for like анализ
Спасибо за советы!
Я думал попробовать как-нибудь через параллельные периоды и функцию EXISTS...
...
Рейтинг: 0 / 0
01.04.2019, 19:14
    #39794800
Alexey I.G.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SSAS like for like анализ
update вопроса:

делаю LFL на примере базы: AdventureWorksDW2012
код SQL (использую для проверок)
https://pastebin.com/sHF5zew9

код MDX (работает не так, как хочется):
https://pastebin.com/MbchV2xa

что не могу понять - как сделать в примере из MDX:
http://prntscr.com/n5z9op
на уровне продукта Water Bottle - 30 oz. - считается все верно - 0.0631 (продажи за январь 2014) и 0.0631 (продажи за январь 2013)
но при агрегации до следующих уровней иерархии (All Products) - не понятно откуда берутся числа (0.9738 и 0.9738 соответственно).
хотя должны быть те же самые 0.0631 и 0.0631


как правильно написать MDX, чтобы LFL считался на уровне productkey и CustomerKey, а для всех уровней выше, просто суммировался...
для Product->Subcategory->Category
для Customer->PostalCode->City
...
Рейтинг: 0 / 0
02.04.2019, 11:27
    #39795035
mishgan1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SSAS like for like анализ
Alexey I.G.,

Делал MDX запросом. По сопоставимым дням через флаг соответствия в текущем и прошлом году.
(т.е. трафик д.б. в этот день и год назад)
По полученным значениям можно посчитать прирост,отклонение и т.д. Это уже в Reporting делал ))

with

member [Measures].[Kodfil] as
[Магазины].[Магазины].CurrentMember.Properties("Key")

------------ флаг по Траффику

member [Measures].[Traffic_flag] as
Iif(([Measures].[Вход],ParallelPeriod([Дата].[Год-Месяц-День].[Год],1,[Дата].[Год-Месяц-День].CurrentMember))>0
AND [Measures].[Вход]>0
,1
,NULL)

------------ Траффик

member [Measures].[Traffic] as
SUM(FILTER(Descendants([Дата].[Год-Месяц-День].CurrentMember,,Leaves),[Measures].[Traffic_flag]=1)
,[Measures].[Вход])

member [Measures].[Traffic_prev] as
SUM(FILTER(Descendants([Дата].[Год-Месяц-День].CurrentMember,,Leaves),[Measures].[Traffic_flag]=1)
,([Measures].[Вход],ParallelPeriod([Дата].[Год-Месяц-День].[Год],1,[Дата].[Год-Месяц-День].CurrentMember)))



---------------------
select {
[Measures].[Kodfil],
[Measures].[Traffic],
[Measures].[Traffic_prev],
} on 0,

Filter([Магазины].[Магазины].[Level 02].Members,[Measures].[Traffic]>0) on 1

from [Watcom]

where ( [Дата].[Год].&[2019])
...
Рейтинг: 0 / 0
02.04.2019, 14:19
    #39795181
Alexey I.G.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SSAS like for like анализ
mishgan1,

Спасибо большое, попробую. Правильно понимаю что ты все делал через MDX, без дополнительных полей в SQL?
...
Рейтинг: 0 / 0
02.04.2019, 14:23
    #39795186
mishgan1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SSAS like for like анализ
Alexey I.G.,

Да, запрос MDX для отчета в Reporting Services
...
Рейтинг: 0 / 0
08.04.2019, 16:15
    #39798245
ASa
ASa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SSAS like for like анализ
Если я правильно понял задачу, то необходимо показать торговые точки, которые покупали в выбранном периоде и аналогичном периоде прошлого года. Здесь уточнение: бренды и категории должны как-то влиять на выборку. Т.е. если бренд участвует в срезе, то сравниваются продажи только по этому бренду? Или предыдущий год берется тотал?

Здесь видится использовать filter и parallel period

with member [Measures].[Qty_PY] as
SUM(ParallelPeriod([Дата].[Дата].[Год],1,[Дата].[Дата].CURRENTMEMBER),[Measures].[Qty])

select {[Measures].[Qty]} on 0,
filter ([Outlets].[Outlet].Members, [Measures].[Qty_PY] <> 0 and [Measures].[Qty] <> 0)
on 1
from Cube
where [Дата].[Дата].[День].&[2019-04-08T00:00:00.000]
...
Рейтинг: 0 / 0
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / SSAS like for like анализ / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]