powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Помогите правильно написать запрос
22 сообщений из 47, страница 2 из 2
Помогите правильно написать запрос
    #33306892
Аналитик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дело в том что в факт таблице на каждый день хранятся только те точки которые посещались. Даже если в факт табицу ввести поле посещалась или нет, то это все равно не решит проблему в случае если мы захотим посмотреть срез для ГОРОДА в который входят точки посещаемые регулярно и которые перестали посещаться пол года назад.

Я честно говоря затрудняюсь модифицировать запрос

with member [Measures].[Остатки] as
'Sum(nonemptycrossjoin(PeriodsToDate([Time].[Month].[(All)],
[Time].[Month].CurrentMember)), [Measures].[Остаток]) '

SELECT
crossjoin({[Time].[Month].[2005].[Октябрь]}, {[Points].[Киев]}) ON
AXIS(1),
crossjoin({[SKU].[Весь ассортимент]}, {[Measures].[Остатки]}) ON
AXIS(0)
FROM Stock

так чтобы в данном случае остаток для города Киев считался только по тем точкам которые были посещены в октября месяце, даже если у меня будет измерение: Посещена, Непосещена.
...
Рейтинг: 0 / 0
Помогите правильно написать запрос
    #33315124
Аналитик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[/quot]

А не проще ли писать в базу для непосещенных точек 0 и не морочить голову MDX-извращениями, а использовать хорошо обкатанные и известные формулы, которых на форуме, как гуталина на фабрике Матроскина - "ну просто завались"[/quot]

Вопрос к г-ну backfire
как добавить 0 для непосещенных точек при структуре факт таблицы

КодТочки
Дата (День недели)
КодПродукта
Остаток

в которой хранятся только посещенные точки на каждый день.
...
Рейтинг: 0 / 0
Помогите правильно написать запрос
    #33315727
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Аналитик

backfireА не проще ли писать в базу для непосещенных точек 0 и не морочить голову MDX-извращениями, а использовать хорошо обкатанные и известные формулы, которых на форуме, как гуталина на фабрике Матроскина - "ну просто завались"

Вопрос к г-ну backfire
как добавить 0 для непосещенных точек при структуре факт таблицы

КодТочки
Дата (День недели)
КодПродукта
Остаток

в которой хранятся только посещенные точки на каждый день.

В лоб это JOIN вашей существующей таблицы с декартовым произведением даты на код точки на продукт. Звучит угрожающе конечно, но оптимизировать можно. В том смысле, что если позавчера посетили точку, а сегодня нет, то сегодня ставим "0", и если завтра точка не посещалась, то вставлять "0" уже не надо. Сегодняшний будет действительным до тех пока точка не посетится и там не появится значение отличное от нуля.
...
Рейтинг: 0 / 0
Помогите правильно написать запрос
    #33315911
Аналитик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо, попробую.
...
Рейтинг: 0 / 0
Помогите правильно написать запрос
    #33319143
Аналитик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
backfire
В том смысле, что если позавчера посетили точку, а сегодня нет, то сегодня ставим "0", и если завтра точка не посещалась, то вставлять "0" уже не надо. Сегодняшний будет действительным до тех пока точка не посетится и там не появится значение отличное от нуля.

Что-то оптимизировать не удается, Вы не могли бы привести пример запроса.
...
Рейтинг: 0 / 0
Помогите правильно написать запрос
    #33325928
Аналитик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Аналитик backfire
В том смысле, что если позавчера посетили точку, а сегодня нет, то сегодня ставим "0", и если завтра точка не посещалась, то вставлять "0" уже не надо. Сегодняшний будет действительным до тех пока точка не посетится и там не появится значение отличное от нуля.

Что-то оптимизировать не удается, Вы не могли бы привести пример запроса.

Я понимаю, что тема остатков всем очень надоела, но все таки г-н backfire
Вы не могли бы привести пример запроса выполняющий
"В том смысле, что если позавчера посетили точку, а сегодня нет, то сегодня ставим "0", и если завтра точка не посещалась, то вставлять "0" уже не надо. Сегодняшний будет действительным до тех пока точка не посетится и там не появится значение отличное от нуля"
...
Рейтинг: 0 / 0
Помогите правильно написать запрос
    #33326287
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АналитикЯ понимаю, что тема остатков всем очень надоела, но все таки г-н backfire
Вы не могли бы привести пример ...

не спеши, я тебе все нарисую, но только после возврата на базу.
...
Рейтинг: 0 / 0
Помогите правильно написать запрос
    #33326373
Dmitry Biryukov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А вам не кажется, что остаток в точке равен нулю это далеко не одно и то же что точка не посещалась и остаток неизвестен?
...
Рейтинг: 0 / 0
Помогите правильно написать запрос
    #33327268
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dmitry BiryukovА вам не кажется, что остаток в точке равен нулю это далеко не одно и то же что точка не посещалась и остаток неизвестен?

Дмитрий, я прелагаю всего навсего подход в решении поставленной Аналитиком проблемы. То что ему так нравится строить отчеты - его дело. Я это не оспариваю.

Вот тут еще одна идея созрела.
Мне кажется, что если таблицу фактов для куба остатков рассматривать как чистый snapshort (по Кимбалу) То не надо мутить с формулами и движениями, а брать просто LastChild.

Таким образом надо 2 физических куба. 1 с движениями и 1 с остатками.
...
Рейтинг: 0 / 0
Помогите правильно написать запрос
    #33327475
Dmitry Biryukov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
backfireМне кажется, что если таблицу фактов для куба остатков рассматривать как чистый snapshort (по Кимбалу) То не надо мутить с формулами и движениями, а брать просто LastChild Что я и предлагал на первой странице...
backfireТаким образом надо 2 физических куба. 1 с движениями и 1 с остатками.а зачем с движениями?
...
Рейтинг: 0 / 0
Помогите правильно написать запрос
    #33327988
Аналитик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вопрос по поводу запроса к г-ну backfire по прежнему в силе.
Теперь по поводу LastChild: LastChild возможно будет использовать на уровне точек, на сколько я понимаю. А что делать на уровне Город, Регион? Ведь на этих уровнях должны считаться суммы из последних остатков точек входящих в этот регион, город.
...
Рейтинг: 0 / 0
Помогите правильно написать запрос
    #33328212
Dmitry Biryukov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SUM(Descendants(...),...)
...
Рейтинг: 0 / 0
Помогите правильно написать запрос
    #33329312
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dmitry BiryukovSUM(Descendants(...),...)

Производительность будет в конкретной ж..
...
Рейтинг: 0 / 0
Помогите правильно написать запрос
    #33329440
Dmitry Biryukov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
backfire Dmitry BiryukovSUM(Descendants(...),...)

Производительность будет в конкретной ж..а шо делать..?
...
Рейтинг: 0 / 0
Помогите правильно написать запрос
    #33329442
Dmitry Biryukov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
имхо, это будет всё равно быстрее, чем формулы аналитика с Tail, Filter и crossjoin
...
Рейтинг: 0 / 0
Помогите правильно написать запрос
    #33331486
Аналитик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dmitry BiryukovSUM(Descendants(...),...)

Я пробовал таким образом считать, производительность реально очень низкая и к сожалению совершенно не удовлетворяет.

Г-н backfire с нетерпением жду от Вас пример запроса о котором я писал выше.
...
Рейтинг: 0 / 0
Помогите правильно написать запрос
    #33331489
Аналитик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий спасибо за совет. Но может Вы знаете еще какие-либо подходы?
...
Рейтинг: 0 / 0
Помогите правильно написать запрос
    #33331558
Dmitry Biryukov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АналитикДмитрий спасибо за совет. Но может Вы знаете еще какие-либо подходы?ну давайте ещё раз проанализируем проблему.
в кубе с дельтами всё считается с удовлетворительной скоростью, но надо выводить только те точки, которые посещались в данном периоде. Верно?
Самый быстрый способ фильтровать по двум состояниям (посещалась/нет) - создать измерение, а в запросах использовать NECJ.
Поищите по форуму, г-н backfire предлагал способ как заставить работать NECJ на СМ. Для этого, по моему, надо будет создать ещё один физ куб (который войдёт в виртуальный), который будет определять множества посещённых точек по периодам, по городам и т.д. на ось положите Extract(NECJ(точки, период, город, физ. мера из этого куба),...)
Вы это попробовали? результаты? или всю работу сделать за Вас? тогда надо призовой фонд организовать...
...
Рейтинг: 0 / 0
Помогите правильно написать запрос
    #33331712
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dmitry Biryukov backfire Dmitry BiryukovSUM(Descendants(...),...)

Производительность будет в конкретной ж..а шо делать..?


Смазать гусиным салом.
...
Рейтинг: 0 / 0
Помогите правильно написать запрос
    #33331714
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dmitry BiryukovСамый быстрый способ фильтровать по двум состояниям (посещалась/нет) - создать измерение

Только это будет не измерение, а куб, т.к. это зависит еще от времени.
...
Рейтинг: 0 / 0
Помогите правильно написать запрос
    #33331720
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dmitry Biryukov
backfireТаким образом надо 2 физических куба. 1 с движениями и 1 с остатками.а зачем с движениями?

Ну я так понимаю, что приход-расход тоже представляют неотъемлимую чать интересов анализа.
...
Рейтинг: 0 / 0
Помогите правильно написать запрос
    #33331741
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Аналитик backfire
В том смысле, что если позавчера посетили точку, а сегодня нет, то сегодня ставим "0", и если завтра точка не посещалась, то вставлять "0" уже не надо. Сегодняшний будет действительным до тех пока точка не посетится и там не появится значение отличное от нуля.

Что-то оптимизировать не удается, Вы не могли бы привести пример запроса.

на вскидку.

вставить в таблицу остатков
(товар, точка, дата, остаток)
выбрать из остатки
товары.товар, точки.точка, "сегодня", 0
из точки соединить на крест товары
где (точка, товар) не в (выбрать точка, товар из остатки где последний остаток <> 0)

вы свой DDL базы выложите, тогда конкретнее можно говорить, можно даже в аське.
...
Рейтинг: 0 / 0
22 сообщений из 47, страница 2 из 2
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Помогите правильно написать запрос
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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