Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Помогите правильно написать запрос
|
|||
|---|---|---|---|
|
#18+
Добрый день, работаю на 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))) Но как Вы увидите из запроса он не оптимальный (выполняется не очень быстро) так как на каждом узле расчитываються суммы из остатков на конец периода. Помогите, пожалуйста, написать правильный и быстрый запрос. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2005, 13:58 |
|
||
|
Помогите правильно написать запрос
|
|||
|---|---|---|---|
|
#18+
Что значит? "точек которые были посещены в этом периоде" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2005, 16:15 |
|
||
|
Помогите правильно написать запрос
|
|||
|---|---|---|---|
|
#18+
Например у нас всего 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 Именно так передо мной была поставлена задача считать остатки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2005, 17:22 |
|
||
|
Помогите правильно написать запрос
|
|||
|---|---|---|---|
|
#18+
А как часто собираются остатки? По каким периодам надо их смотреть? Какая у вас иерархия времени? Чему равен остаток на конец месяца, в который входят неделя 1 и 2? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2005, 18:01 |
|
||
|
Помогите правильно написать запрос
|
|||
|---|---|---|---|
|
#18+
Остатки собираются каждый день. Периоды по которым надо смотреть: Год, месяц, неделя, день. Иерархия: Год - Месяц - День, Год - Неделя - День. Остаток на конец месяца равен 2+1+2+5 = 10 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2005, 18:39 |
|
||
|
Помогите правильно написать запрос
|
|||
|---|---|---|---|
|
#18+
Уважаемые проффесионалы, я очень расчитываю на Вашу помощь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2005, 10:08 |
|
||
|
Помогите правильно написать запрос
|
|||
|---|---|---|---|
|
#18+
АналитикУважаемые проффесионалы, я очень расчитываю на Вашу помощь.Уважаемый аналитик, рассчитывать надо только на себя. Ибо никто не должен помогать Вам зарабатывать свою зарплату. А по существу, похоже, что Вам поможет Custom Rollup Formula с LastChild или что-то в этом роде http://www.sql.ru/forum/actualthread.aspx?tid=158700]iif(IsEmpty(Остаток), [Дата].PrevMember, Остаток) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2005, 12:42 |
|
||
|
Помогите правильно написать запрос
|
|||
|---|---|---|---|
|
#18+
Дмитрий,спасибо за полезную информацию но к сожалению она не пременима к моей задаче. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2005, 18:51 |
|
||
|
Помогите правильно написать запрос
|
|||
|---|---|---|---|
|
#18+
Дмитрий, скажите пожалуйста чему будет равен остаток (необходимо учитывать остатки только последних посещений точек) используя приведенную Вами формулу на уровне Город1 за Неделю 2 в случае если На Неделе2 посещено: 2 точки из 4 При первом визите остаток в Точке 2= 5 При втором визите остаток в Точке 2= 1 При первом визите остаток в Точке 3= 6 При втором визите остаток в Точке 3= 2 Заранее благодарен за ответ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2005, 19:01 |
|
||
|
Помогите правильно написать запрос
|
|||
|---|---|---|---|
|
#18+
А я вам указал не готовое решение, а направление поиска... так что в идеале (если дойти до конца), получите то, что вам нужно. Custom Rollup Formula поможет сворачивать остатки по дням до недели или месяца, т.е. не суммировать, а брать значение одного из дней. какого именно дня - поможет топик про поиск последнего непустого значения ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2005, 19:23 |
|
||
|
Помогите правильно написать запрос
|
|||
|---|---|---|---|
|
#18+
Спасибо за совет, формула классная. Но опять же она считает накопительные остатки. А вопрос был поставлен остатки на конец выбранного периода, без учета остатков точек которые не были посещены в выбранном периоде. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2005, 13:15 |
|
||
|
Помогите правильно написать запрос
|
|||
|---|---|---|---|
|
#18+
Судя по ответам, я наверно попал в игнор лист ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2005, 16:38 |
|
||
|
Помогите правильно написать запрос
|
|||
|---|---|---|---|
|
#18+
землякам надо помогать.... скиньте базу на мыло в профиле. покумекаю на досуге. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2005, 02:25 |
|
||
|
Помогите правильно написать запрос
|
|||
|---|---|---|---|
|
#18+
АналитикНапример у нас всего 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-извращениями, а использовать хорошо обкатанные и известные формулы, которых на форуме, как гуталина на фабрике Матроскина - "ну просто завались" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2005, 16:07 |
|
||
|
Помогите правильно написать запрос
|
|||
|---|---|---|---|
|
#18+
Дмитрий, спасибо большое за желание помочь, без шуток приятно, землячество классная штука. К сожалению наша служба безопасности не позволит отправить ни базу, ни куб. Я могу описать факт таблицу КодТочки Дата (День недели) КодПродукта Остаток На основании этой таблицы построен куб. Для решения моей задачи я использовал запрос 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))) Считает то что надо, но он очень медленный, и сильно грузит компьютер чем соответственно не подходит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2005, 10:52 |
|
||
|
Помогите правильно написать запрос
|
|||
|---|---|---|---|
|
#18+
Господин backfire, спасибо за Ваш ответ, я с Вами согласен как вариант добавление нулей в точки которые не посещались можно рассматривать и согласен что это позволит использовать стандартные формулы расчетов остатков. Но у данного подхода есть недостаток: на данный момент в факт таблице 500 000 записей, после добавление нулей к-во записей вырастит в 5 000 000, а соответственно размер куба также увеличится. Не подумайте, что я Вам морочу голову, но данный подход не очень подходит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2005, 10:59 |
|
||
|
Помогите правильно написать запрос
|
|||
|---|---|---|---|
|
#18+
Скажите можно ли сделать так: После расчета дельт, в стандартном случае мы используем следующее выражение для получение накопительных остатков with member [Measures].[Остатки] as 'Sum(PeriodsToDate([Time].[Month].[(All)], [Time].[Month].CurrentMember), [Measures].[Остаток]) ' Я же предлагаю поступить по другому, но к сожалению не знаю как это сделать, найти точки которые были посещены в указанном периоде и для них расчитывать остатки по указанной выше формуле Да, но что делать в случае если анализировать в разрезе города? Если использовать Descendants, то тогда где? И как тогда при таких расчетах должно выглядеть выражение "Sum(PeriodsToDate([Time].[Month].[(All)], [Time].[Month].CurrentMember), [Measures].[Остаток])" ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2005, 11:14 |
|
||
|
Помогите правильно написать запрос
|
|||
|---|---|---|---|
|
#18+
во-первых, есть более быстрая формула для остатков с ancestors - на форуме была. во-вторых, добавьте измерение посещалась/нет. тогда сможете легко фильтровать те точки, которые нужны. кстати, какой клиент у вас? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2005, 12:30 |
|
||
|
Помогите правильно написать запрос
|
|||
|---|---|---|---|
|
#18+
Клиент мы свой пишем. Спасибо за рекомендацию, попробуем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2005, 17:15 |
|
||
|
Помогите правильно написать запрос
|
|||
|---|---|---|---|
|
#18+
Дмитрий, извините но на форуме я что-то не нашел "более быстрая формула для остатков с ancestors". Если Вас не затруднит дайте пожалуйста ссылку ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2005, 13:55 |
|
||
|
Помогите правильно написать запрос
|
|||
|---|---|---|---|
|
#18+
Dmitry Biryukovво-первых, есть более быстрая формула для остатков с ancestors - на форуме была. во-вторых, добавьте измерение посещалась/нет. тогда сможете легко фильтровать те точки, которые нужны. кстати, какой клиент у вас? А есть формула c Ancestors для случая нескольких иерархий временного измерения? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2005, 13:58 |
|
||
|
Помогите правильно написать запрос
|
|||
|---|---|---|---|
|
#18+
Формулу я нашел. Теперь у меня так же появился вопрос по поводу иерархий, учитывая то что у меня как раз иерархия (Год-Месяць-День; Год-Неделя-День) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2005, 14:09 |
|
||
|
Помогите правильно написать запрос
|
|||
|---|---|---|---|
|
#18+
Только я хотел уточнить формула с Ancestors или Ascendants? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2005, 14:16 |
|
||
|
Помогите правильно написать запрос
|
|||
|---|---|---|---|
|
#18+
Всем спасибо, к сожалению так и не удалось получить ответа на поставленный вопрос, кроме господина 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) ) В факт таблице хранятся просто остатки (дельты не расчитывались) Основной недостаток формулы - длительность расчетов. Т.е. никаких сум от начала периода до текущего выбраного момента не используется,т.к. это дает накопительный остаток. А по условиям задачи необходимо выводить остаток по всем последним визитам за конкретный период времени без учета остатков из других периодов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2005, 14:18 |
|
||
|
Помогите правильно написать запрос
|
|||
|---|---|---|---|
|
#18+
а вы пробовали в куб с дельтами добавить измерение "посещалась/нет" ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2005, 14:41 |
|
||
|
Помогите правильно написать запрос
|
|||
|---|---|---|---|
|
#18+
Дело в том что в факт таблице на каждый день хранятся только те точки которые посещались. Даже если в факт табицу ввести поле посещалась или нет, то это все равно не решит проблему в случае если мы захотим посмотреть срез для ГОРОДА в который входят точки посещаемые регулярно и которые перестали посещаться пол года назад. Я честно говоря затрудняюсь модифицировать запрос 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 так чтобы в данном случае остаток для города Киев считался только по тем точкам которые были посещены в октября месяце, даже если у меня будет измерение: Посещена, Непосещена. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2005, 16:30 |
|
||
|
Помогите правильно написать запрос
|
|||
|---|---|---|---|
|
#18+
[/quot] А не проще ли писать в базу для непосещенных точек 0 и не морочить голову MDX-извращениями, а использовать хорошо обкатанные и известные формулы, которых на форуме, как гуталина на фабрике Матроскина - "ну просто завались"[/quot] Вопрос к г-ну backfire как добавить 0 для непосещенных точек при структуре факт таблицы КодТочки Дата (День недели) КодПродукта Остаток в которой хранятся только посещенные точки на каждый день. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2005, 14:29 |
|
||
|
Помогите правильно написать запрос
|
|||
|---|---|---|---|
|
#18+
Аналитик backfireА не проще ли писать в базу для непосещенных точек 0 и не морочить голову MDX-извращениями, а использовать хорошо обкатанные и известные формулы, которых на форуме, как гуталина на фабрике Матроскина - "ну просто завались" Вопрос к г-ну backfire как добавить 0 для непосещенных точек при структуре факт таблицы КодТочки Дата (День недели) КодПродукта Остаток в которой хранятся только посещенные точки на каждый день. В лоб это JOIN вашей существующей таблицы с декартовым произведением даты на код точки на продукт. Звучит угрожающе конечно, но оптимизировать можно. В том смысле, что если позавчера посетили точку, а сегодня нет, то сегодня ставим "0", и если завтра точка не посещалась, то вставлять "0" уже не надо. Сегодняшний будет действительным до тех пока точка не посетится и там не появится значение отличное от нуля. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2005, 17:30 |
|
||
|
Помогите правильно написать запрос
|
|||
|---|---|---|---|
|
#18+
Спасибо, попробую. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2005, 18:59 |
|
||
|
Помогите правильно написать запрос
|
|||
|---|---|---|---|
|
#18+
backfire В том смысле, что если позавчера посетили точку, а сегодня нет, то сегодня ставим "0", и если завтра точка не посещалась, то вставлять "0" уже не надо. Сегодняшний будет действительным до тех пока точка не посетится и там не появится значение отличное от нуля. Что-то оптимизировать не удается, Вы не могли бы привести пример запроса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2005, 10:42 |
|
||
|
Помогите правильно написать запрос
|
|||
|---|---|---|---|
|
#18+
Аналитик backfire В том смысле, что если позавчера посетили точку, а сегодня нет, то сегодня ставим "0", и если завтра точка не посещалась, то вставлять "0" уже не надо. Сегодняшний будет действительным до тех пока точка не посетится и там не появится значение отличное от нуля. Что-то оптимизировать не удается, Вы не могли бы привести пример запроса. Я понимаю, что тема остатков всем очень надоела, но все таки г-н backfire Вы не могли бы привести пример запроса выполняющий "В том смысле, что если позавчера посетили точку, а сегодня нет, то сегодня ставим "0", и если завтра точка не посещалась, то вставлять "0" уже не надо. Сегодняшний будет действительным до тех пока точка не посетится и там не появится значение отличное от нуля" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2005, 17:42 |
|
||
|
Помогите правильно написать запрос
|
|||
|---|---|---|---|
|
#18+
АналитикЯ понимаю, что тема остатков всем очень надоела, но все таки г-н backfire Вы не могли бы привести пример ... не спеши, я тебе все нарисую, но только после возврата на базу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2005, 02:16 |
|
||
|
Помогите правильно написать запрос
|
|||
|---|---|---|---|
|
#18+
А вам не кажется, что остаток в точке равен нулю это далеко не одно и то же что точка не посещалась и остаток неизвестен? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2005, 12:03 |
|
||
|
Помогите правильно написать запрос
|
|||
|---|---|---|---|
|
#18+
Dmitry BiryukovА вам не кажется, что остаток в точке равен нулю это далеко не одно и то же что точка не посещалась и остаток неизвестен? Дмитрий, я прелагаю всего навсего подход в решении поставленной Аналитиком проблемы. То что ему так нравится строить отчеты - его дело. Я это не оспариваю. Вот тут еще одна идея созрела. Мне кажется, что если таблицу фактов для куба остатков рассматривать как чистый snapshort (по Кимбалу) То не надо мутить с формулами и движениями, а брать просто LastChild. Таким образом надо 2 физических куба. 1 с движениями и 1 с остатками. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2005, 09:16 |
|
||
|
Помогите правильно написать запрос
|
|||
|---|---|---|---|
|
#18+
backfireМне кажется, что если таблицу фактов для куба остатков рассматривать как чистый snapshort (по Кимбалу) То не надо мутить с формулами и движениями, а брать просто LastChild Что я и предлагал на первой странице... backfireТаким образом надо 2 физических куба. 1 с движениями и 1 с остатками.а зачем с движениями? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2005, 11:02 |
|
||
|
Помогите правильно написать запрос
|
|||
|---|---|---|---|
|
#18+
Вопрос по поводу запроса к г-ну backfire по прежнему в силе. Теперь по поводу LastChild: LastChild возможно будет использовать на уровне точек, на сколько я понимаю. А что делать на уровне Город, Регион? Ведь на этих уровнях должны считаться суммы из последних остатков точек входящих в этот регион, город. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2005, 13:35 |
|
||
|
Помогите правильно написать запрос
|
|||
|---|---|---|---|
|
#18+
SUM(Descendants(...),...) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2005, 14:36 |
|
||
|
Помогите правильно написать запрос
|
|||
|---|---|---|---|
|
#18+
Dmitry BiryukovSUM(Descendants(...),...) Производительность будет в конкретной ж.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2005, 00:56 |
|
||
|
Помогите правильно написать запрос
|
|||
|---|---|---|---|
|
#18+
backfire Dmitry BiryukovSUM(Descendants(...),...) Производительность будет в конкретной ж..а шо делать..? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2005, 09:01 |
|
||
|
Помогите правильно написать запрос
|
|||
|---|---|---|---|
|
#18+
имхо, это будет всё равно быстрее, чем формулы аналитика с Tail, Filter и crossjoin ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2005, 09:03 |
|
||
|
Помогите правильно написать запрос
|
|||
|---|---|---|---|
|
#18+
Dmitry BiryukovSUM(Descendants(...),...) Я пробовал таким образом считать, производительность реально очень низкая и к сожалению совершенно не удовлетворяет. Г-н backfire с нетерпением жду от Вас пример запроса о котором я писал выше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2005, 18:26 |
|
||
|
Помогите правильно написать запрос
|
|||
|---|---|---|---|
|
#18+
Дмитрий спасибо за совет. Но может Вы знаете еще какие-либо подходы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2005, 18:29 |
|
||
|
Помогите правильно написать запрос
|
|||
|---|---|---|---|
|
#18+
АналитикДмитрий спасибо за совет. Но может Вы знаете еще какие-либо подходы?ну давайте ещё раз проанализируем проблему. в кубе с дельтами всё считается с удовлетворительной скоростью, но надо выводить только те точки, которые посещались в данном периоде. Верно? Самый быстрый способ фильтровать по двум состояниям (посещалась/нет) - создать измерение, а в запросах использовать NECJ. Поищите по форуму, г-н backfire предлагал способ как заставить работать NECJ на СМ. Для этого, по моему, надо будет создать ещё один физ куб (который войдёт в виртуальный), который будет определять множества посещённых точек по периодам, по городам и т.д. на ось положите Extract(NECJ(точки, период, город, физ. мера из этого куба),...) Вы это попробовали? результаты? или всю работу сделать за Вас? тогда надо призовой фонд организовать... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2005, 18:58 |
|
||
|
Помогите правильно написать запрос
|
|||
|---|---|---|---|
|
#18+
Dmitry Biryukov backfire Dmitry BiryukovSUM(Descendants(...),...) Производительность будет в конкретной ж..а шо делать..? Смазать гусиным салом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2005, 20:30 |
|
||
|
Помогите правильно написать запрос
|
|||
|---|---|---|---|
|
#18+
Dmitry BiryukovСамый быстрый способ фильтровать по двум состояниям (посещалась/нет) - создать измерение Только это будет не измерение, а куб, т.к. это зависит еще от времени. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2005, 20:32 |
|
||
|
Помогите правильно написать запрос
|
|||
|---|---|---|---|
|
#18+
Dmitry Biryukov backfireТаким образом надо 2 физических куба. 1 с движениями и 1 с остатками.а зачем с движениями? Ну я так понимаю, что приход-расход тоже представляют неотъемлимую чать интересов анализа. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2005, 20:38 |
|
||
|
Помогите правильно написать запрос
|
|||
|---|---|---|---|
|
#18+
Аналитик backfire В том смысле, что если позавчера посетили точку, а сегодня нет, то сегодня ставим "0", и если завтра точка не посещалась, то вставлять "0" уже не надо. Сегодняшний будет действительным до тех пока точка не посетится и там не появится значение отличное от нуля. Что-то оптимизировать не удается, Вы не могли бы привести пример запроса. на вскидку. вставить в таблицу остатков (товар, точка, дата, остаток) выбрать из остатки товары.товар, точки.точка, "сегодня", 0 из точки соединить на крест товары где (точка, товар) не в (выбрать точка, товар из остатки где последний остаток <> 0) вы свой DDL базы выложите, тогда конкретнее можно говорить, можно даже в аське. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2005, 20:48 |
|
||
|
|

start [/forum/topic.php?all=1&fid=49&tid=1870984]: |
0ms |
get settings: |
5ms |
get forum list: |
19ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
54ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
98ms |
get tp. blocked users: |
2ms |
| others: | 221ms |
| total: | 422ms |

| 0 / 0 |
