powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Помогите правильно написать запрос
47 сообщений из 47, показаны все 2 страниц
Помогите правильно написать запрос
    #33290817
Аналитик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день, работаю на MS AS 2K

Проблема возникла с следующей задачей:
Нужно расчитать остатки на конец выбранного периода только для тех точек которые были посещены в этом периоде, и не учитывать остатки тех точек которые не посещались.

Есть куб, в котором хранятся дельты, расчет остатков выполняется следующим запросом:

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

Но запрос не очень подходит т.к. расчет остатков происходит по всем точкам которые посещались и не посещались, т.е. мы получаем накопительный остаток.

Также как второй вариант есть куб в котором хранятся непосредственно сами остатки. Тогда расчет остатков на конец выбранного периода только для тех точек которые были посещены в этом периоде я считаю следующим образом:

iif(IsLeaf([Points].Currentmember),

Tail (Filter(crossjoin({[Measures].[Stock]},
Descendants([Time].[Month].currentmember, [Time].[Month].Day)), (NOT
IsEmpty([Measures].[Stock]))), 1).item(0),

Sum(Descendants({[Points].Currentmember},[Points].[Point]), Tail
(Filter(crossjoin({[Measures].[Stock]},
Descendants([Time].[Month].currentmember, [Time].[Month].Day)), (NOT
IsEmpty([Measures].[Stock]))), 1).item(0)))

Но как Вы увидите из запроса он не оптимальный (выполняется не очень быстро) так как на каждом узле расчитываються суммы из остатков на конец периода.

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

"точек которые были посещены в этом периоде"
...
Рейтинг: 0 / 0
Помогите правильно написать запрос
    #33291568
Аналитик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Например у нас всего 4 точек

На Неделе1 посещено: 4 точек все они входят в Город 1
При этом в
Точке 1 остаток на конец недели = 2
Точке 2 остаток на конец недели = 3
Точке 3 остаток на конец недели = 4
Точке 4 остаток на конец недели = 5

На Неделе2 посещено: 2 точки из 4
Точке 2 остаток на конец недели = 1
Точке 3 остаток на конец недели = 2

Например я хочу просмотреть какие остатки у меня по Городу 1 (т.е. по всем точкам входящим в него) на конец Недели1 в результате я должен получить 2+3+4+5=14

Например я хочу просмотреть какие остатки у меня по Городу 1 на конец Недели2 в результате должны получить сумму остатков только тех точек которые были посещены, т.е. Точка 2+Точка 3 = 1+2 =3

Именно так передо мной была поставлена задача считать остатки.
...
Рейтинг: 0 / 0
Помогите правильно написать запрос
    #33291690
Dmitry Biryukov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А как часто собираются остатки?
По каким периодам надо их смотреть?
Какая у вас иерархия времени?
Чему равен остаток на конец месяца, в который входят неделя 1 и 2?
...
Рейтинг: 0 / 0
Помогите правильно написать запрос
    #33291766
Аналитик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Остатки собираются каждый день.
Периоды по которым надо смотреть: Год, месяц, неделя, день.
Иерархия: Год - Месяц - День, Год - Неделя - День.

Остаток на конец месяца равен 2+1+2+5 = 10
...
Рейтинг: 0 / 0
Помогите правильно написать запрос
    #33292430
Аналитик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уважаемые проффесионалы, я очень расчитываю на Вашу помощь.
...
Рейтинг: 0 / 0
Помогите правильно написать запрос
    #33292916
Dmitry Biryukov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АналитикУважаемые проффесионалы, я очень расчитываю на Вашу помощь.Уважаемый аналитик, рассчитывать надо только на себя. Ибо никто не должен помогать Вам зарабатывать свою зарплату.
А по существу, похоже, что Вам поможет Custom Rollup Formula с LastChild
или что-то в этом роде http://www.sql.ru/forum/actualthread.aspx?tid=158700]iif(IsEmpty(Остаток), [Дата].PrevMember, Остаток)
...
Рейтинг: 0 / 0
Помогите правильно написать запрос
    #33294303
Аналитик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий,спасибо за полезную информацию но к сожалению она не пременима к моей задаче.
...
Рейтинг: 0 / 0
Помогите правильно написать запрос
    #33294322
Аналитик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий, скажите пожалуйста чему будет равен остаток (необходимо учитывать остатки только последних посещений точек) используя приведенную Вами формулу на уровне Город1 за Неделю 2 в случае если

На Неделе2 посещено: 2 точки из 4
При первом визите остаток в Точке 2= 5
При втором визите остаток в Точке 2= 1

При первом визите остаток в Точке 3= 6
При втором визите остаток в Точке 3= 2

Заранее благодарен за ответ
...
Рейтинг: 0 / 0
Помогите правильно написать запрос
    #33294371
Dmitry Biryukov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А я вам указал не готовое решение, а направление поиска...
так что в идеале (если дойти до конца), получите то, что вам нужно.
Custom Rollup Formula поможет сворачивать остатки по дням до недели или месяца, т.е. не суммировать, а брать значение одного из дней. какого именно дня - поможет топик про поиск последнего непустого значения
...
Рейтинг: 0 / 0
Помогите правильно написать запрос
    #33298278
Аналитик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо за совет, формула классная. Но опять же она считает накопительные остатки.
А вопрос был поставлен остатки на конец выбранного периода, без учета остатков точек которые не были посещены в выбранном периоде.
...
Рейтинг: 0 / 0
Помогите правильно написать запрос
    #33299063
Аналитик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Судя по ответам, я наверно попал в игнор лист
...
Рейтинг: 0 / 0
Помогите правильно написать запрос
    #33299649
Dmitry Biryukov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
землякам надо помогать.... скиньте базу на мыло в профиле. покумекаю на досуге.
...
Рейтинг: 0 / 0
Помогите правильно написать запрос
    #33299852
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АналитикНапример у нас всего 4 точек

На Неделе1 посещено: 4 точек все они входят в Город 1
При этом в
Точке 1 остаток на конец недели = 2
Точке 2 остаток на конец недели = 3
Точке 3 остаток на конец недели = 4
Точке 4 остаток на конец недели = 5

На Неделе2 посещено: 2 точки из 4
Точке 2 остаток на конец недели = 1
Точке 3 остаток на конец недели = 2

Например я хочу просмотреть какие остатки у меня по Городу 1 (т.е. по всем точкам входящим в него) на конец Недели1 в результате я должен получить 2+3+4+5=14

Например я хочу просмотреть какие остатки у меня по Городу 1 на конец Недели2 в результате должны получить сумму остатков только тех точек которые были посещены, т.е. Точка 2+Точка 3 = 1+2 =3

Именно так передо мной была поставлена задача считать остатки.

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

Я могу описать факт таблицу

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

На основании этой таблицы построен куб.
Для решения моей задачи я использовал запрос

iif(IsLeaf([Points].Currentmember),

Tail (Filter(crossjoin({[Measures].[Stock]},
Descendants([Time].[Month].currentmember, [Time].[Month].Day)), (NOT
IsEmpty([Measures].[Stock]))), 1).item(0),

Sum(Descendants({[Points].Currentmember},[Points].[Point]), Tail
(Filter(crossjoin({[Measures].[Stock]},
Descendants([Time].[Month].currentmember, [Time].[Month].Day)), (NOT
IsEmpty([Measures].[Stock]))), 1).item(0)))

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

Но у данного подхода есть недостаток: на данный момент в факт таблице 500 000 записей, после добавление нулей к-во записей вырастит в
5 000 000, а соответственно размер куба также увеличится. Не подумайте, что я Вам морочу голову, но данный подход не очень подходит.
...
Рейтинг: 0 / 0
Помогите правильно написать запрос
    #33300780
Аналитик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Скажите можно ли сделать так:

После расчета дельт, в стандартном случае мы используем следующее выражение для получение накопительных остатков

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

Я же предлагаю поступить по другому, но к сожалению не знаю как это сделать, найти точки которые были посещены в указанном периоде и для них расчитывать остатки по указанной выше формуле
Да, но что делать в случае если анализировать в разрезе города? Если использовать Descendants, то тогда где?
И как тогда при таких расчетах должно выглядеть выражение "Sum(PeriodsToDate([Time].[Month].[(All)],
[Time].[Month].CurrentMember), [Measures].[Остаток])" ?
...
Рейтинг: 0 / 0
Помогите правильно написать запрос
    #33301055
Dmitry Biryukov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
во-первых, есть более быстрая формула для остатков с ancestors - на форуме была.
во-вторых, добавьте измерение посещалась/нет.
тогда сможете легко фильтровать те точки, которые нужны.
кстати, какой клиент у вас?
...
Рейтинг: 0 / 0
Помогите правильно написать запрос
    #33301913
Аналитик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Клиент мы свой пишем. Спасибо за рекомендацию, попробуем.
...
Рейтинг: 0 / 0
Помогите правильно написать запрос
    #33303726
Аналитик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий, извините но на форуме я что-то не нашел "более быстрая формула для остатков с ancestors". Если Вас не затруднит дайте пожалуйста ссылку
...
Рейтинг: 0 / 0
Помогите правильно написать запрос
    #33303738
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dmitry Biryukovво-первых, есть более быстрая формула для остатков с ancestors - на форуме была.
во-вторых, добавьте измерение посещалась/нет.
тогда сможете легко фильтровать те точки, которые нужны.
кстати, какой клиент у вас?

А есть формула c Ancestors для случая нескольких иерархий временного измерения?
...
Рейтинг: 0 / 0
Помогите правильно написать запрос
    #33303773
Аналитик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Формулу я нашел. Теперь у меня так же появился вопрос по поводу иерархий, учитывая то что у меня как раз иерархия (Год-Месяць-День; Год-Неделя-День)
...
Рейтинг: 0 / 0
Помогите правильно написать запрос
    #33303798
Аналитик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Только я хотел уточнить формула с Ancestors или Ascendants?
...
Рейтинг: 0 / 0
Помогите правильно написать запрос
    #33306365
Аналитик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем спасибо, к сожалению так и не удалось получить ответа на поставленный вопрос, кроме господина backfire, который предложил:

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

Если все же интерес остался, давайте прододжим обсуждение.

Я достиг решения следующей формулой:

iif(IsLeaf([Points].Currentmember),

Tail (
Filter(
crossjoin(
{[Measures].[Stock]},
Descendants(
[Time]. [Month].currentmember, [Time].[Month].Day
)
)
, (NOT IsEmpty([Measures].[Stock]))
)
, 1).item(0),


Sum(
Tail (
Filter(
crossjoin(
{[Measures].[Stock]},
Descendants(
[Time]. [Month].currentmember, [Time].[Month].Day
)
)
, (NOT IsEmpty([Measures].[Stock]))
)
, 1).item(0)
)

В факт таблице хранятся просто остатки (дельты не расчитывались)

Основной недостаток формулы - длительность расчетов. Т.е. никаких сум от начала периода до текущего выбраного момента не используется,т.к. это дает накопительный остаток. А по условиям задачи необходимо выводить остаток по всем последним визитам за конкретный период времени без учета остатков из других периодов.
...
Рейтинг: 0 / 0
Помогите правильно написать запрос
    #33306464
Dmitry Biryukov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а вы пробовали в куб с дельтами добавить измерение "посещалась/нет" ?
...
Рейтинг: 0 / 0
Помогите правильно написать запрос
    #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
47 сообщений из 47, показаны все 2 страниц
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Помогите правильно написать запрос
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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