powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Вычисление суумы на узлах
80 сообщений из 80, показаны все 4 страниц
Вычисление суумы на узлах
    #33004645
Аналитик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Помогите пожалуйста с проблемой:

У меня есть измерение Регион-Город-Точка.
Каждая точка посещается ежедневно, в ней отмечается наличие товара.
Мне нужно получить информацию по наличию товара в точке за месяц, год для города причем считать наличие только по последнему посещению точки.

Например:
Точка 1 посещалась 05.04.05 в ней было наличие 2
Точка 1 также посещалась 07.04.05 в ней было наличие 5
Точка 2 посещалась 08.04.05 в ней было наличие 6
Точка 3 посещалась 06.04.05 в ней было наличие 1
Точка 3 посещалась 08.04.05 в ней было наличие 5

Я хочу посмотреть информацию для Города 1, в который входят эти точки за месяц апрель:

Соответственно для города наличие считаем только по последним посещениям этой точки:
Точка 1 также посещалась 07.04.05 в ней было наличие 5
+
Точка 2 посещалась 08.04.05 в ней было наличие 6
+
Точка 3 посещалась 08.04.05 в ней было наличие 5
= 16

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

рекомендую ознакомиться для начала с правилами форума на предмет правильного оформления вопросов.
Ни продукта, с которым Вы работаете, ни то, как Вы решаете задачу сейчас.
Какой после этого ответ Вы ожидаете получить?

С уважением,
Константин Лисянский
http://lissianski.narod.ru
...
Рейтинг: 0 / 0
Вычисление суумы на узлах
    #33004880
Аналитик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Извените, за незнание правил, но я на форуме впервые.
Используя Microsoft Analysis Manager. Я бы хотел попросить совета как оптимальней это сделать, не учитывая моих наработок.
...
Рейтинг: 0 / 0
Вычисление суумы на узлах
    #33005153
Аналитик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я делаю следующим образом:
Нахожу показатель наличия товара по последнему посещению точки и записываю его еще раз для каждой точки,
после чего осуществляю пересчет для уровня Город и Регион, суммируя полученные значения по точкам входящим в соответствующий регион, дивизион.
...
Рейтинг: 0 / 0
Вычисление суумы на узлах
    #33005161
Аналитик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Очень прошу, помочь проблему, спасите утопающего в проблеме человека
...
Рейтинг: 0 / 0
Вычисление суумы на узлах
    #33005239
Jurii
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Аналитик:

Мне приходилось решать такие задачи. Поступал я так: делал вьюшку или таблицу, в которую на даты наличия информации об остатках вычислялись приросты или уменеьшения остатков. Далее в OLAP-клиенте (PowerPlay) брал нарастающий итог от этих дельт. Это позволяет увидеть динамику остатков как на уровне города, так и на уровне точки, или посмотреть остатки на любую дату.
...
Рейтинг: 0 / 0
Вычисление суумы на узлах
    #33005251
Аналитик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если честно не очень понял, если можно обьяснить подробней, было бы хорошо
...
Рейтинг: 0 / 0
Вычисление суумы на узлах
    #33005261
Аналитик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я решаю свою задачу путем постоянного пересчитывания для разных уровней, что занимает очень много времени и является очень не эффективным.
...
Рейтинг: 0 / 0
Вычисление суумы на узлах
    #33005271
Jurii
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Аналитик:

Если честно не очень понял, если можно обьяснить подробней, было бы хорошо

Сейчас я должен отъехать из офиса, объяснить не успею, если Вам это срочно - напишите мне на адрес cognos@narod.ru Ваш контактный телефон, я Вам перезвоню.
...
Рейтинг: 0 / 0
Вычисление суумы на узлах
    #33005293
Аналитик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проблема в том, что я нахожусь в Украине, напишите пожалуйста когда у Вас появится время.
...
Рейтинг: 0 / 0
Вычисление суумы на узлах
    #33005379
Аналитик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если, еще кто-нибудь решал такие проблемы - помогите
...
Рейтинг: 0 / 0
Вычисление суумы на узлах
    #33005688
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АналитикПомогите пожалуйста с проблемой:

У меня есть измерение Регион-Город-Точка.
Каждая точка посещается ежедневно, в ней отмечается наличие товара.
Мне нужно получить информацию по наличию товара в точке за месяц, год для города причем считать наличие только по последнему посещению точки.

Например:
Точка 1 посещалась 05.04.05 в ней было наличие 2
Точка 1 также посещалась 07.04.05 в ней было наличие 5
Точка 2 посещалась 08.04.05 в ней было наличие 6
Точка 3 посещалась 06.04.05 в ней было наличие 1
Точка 3 посещалась 08.04.05 в ней было наличие 5

Я хочу посмотреть информацию для Города 1, в который входят эти точки за месяц апрель:

Соответственно для города наличие считаем только по последним посещениям этой точки:
Точка 1 также посещалась 07.04.05 в ней было наличие 5
+
Точка 2 посещалась 08.04.05 в ней было наличие 6
+
Точка 3 посещалась 08.04.05 в ней было наличие 5
= 16

Для одного города считать не проблема, но когда к-во точек превышает 20000, тормоза ужасные.

Здоровеньки були!

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

в общем виде вы зотите получить ответ на вопрос как

остаток = F(время, точка).
где время - любой из членов иерархии Year.Quartal.Month.Tag;
точка - любой из членов иерархии Регион.Город.Точка;

Я бы вам посоветовал на уровне SQL базы (т.е. в хранилища данных завести 2 доп таблички.
а) остатки на начало какого либо периода (месяца, года, квартала).
в) движения остатков как делту до и после пересчета.

И задача отображения результатов в кубе сводится к "кубу остатков". Которому на этом форуме достаточно много дискуссий посвящено - не поленитесь вызвать поиск.
...
Рейтинг: 0 / 0
Вычисление суумы на узлах
    #33005948
Аналитик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я согласен, что можно добавить пару табличек в SQL, но данные по остаткам в SQL у меня уже есть, зачем мне еще раз их дублировать в другие таблички, при этом увеличивая размер базы, а также время процессирования куба.

Но все таки если Вам не сложно обьясните что имеется ввиду - "в) движения остатков как делту до и после пересчета".
...
Рейтинг: 0 / 0
Вычисление суумы на узлах
    #33005955
Аналитик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"в) движения остатков как делту до и после пересчета". Каким образом это можно осуществить.
...
Рейтинг: 0 / 0
Вычисление суумы на узлах
    #33005976
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АналитикЯ согласен, что можно добавить пару табличек в SQL, но данные по остаткам в SQL у меня уже есть, зачем мне еще раз их дублировать в другие таблички, при этом увеличивая размер базы, а также время процессирования куба.

Но все таки если Вам не сложно обьясните что имеется ввиду - "в) движения остатков как делту до и после пересчета".

Вы жалуетесь как раз на то, что у вас время выполнения отчетов никудышнее,
я же вам предлагаю вызод из этой ситуации. Да за счет некоторого увеличения базы (при нынешних ценах на диски это не причина), а то что время процессирования куба увеличится, то скажите пожалуйста о каких временах мы ведем речь? часы, десятки минут, минуты?
каков размер вашей таблицы фактов и сколько сейчас процессируется куб?

А под дельтой я понимаю следующее

Исходные данные:
Точка 1 посещалась 05.04.05 в ней было наличие 2
Точка 1 также посещалась 07.04.05 в ней было наличие 5
Точка 2 посещалась 08.04.05 в ней было наличие 6
Точка 3 посещалась 06.04.05 в ней было наличие 1
Точка 3 посещалась 08.04.05 в ней было наличие 5

Из нее получаем
Точка 1 посещалась 05.04.05 дельта 2
Точка 1 посещалась 07.04.05 дельта 3
Точка 2 посещалась 08.04.05 дельта 6
Точка 3 посещалась 06.04.05 дельта 1
Точка 3 посещалась 08.04.05 дельта 4

На SQL это можно оформить одним
INSERT ...
SELECT ...
...
Рейтинг: 0 / 0
Вычисление суумы на узлах
    #33006001
Аналитик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Размер таблицы фактов = 2000000 записей, которая с каждым днем увеличиваются на 300000 записей.

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

Я согласен, как вариант, такое решение проблемы исключать нельзя, но создав такую таблицу я тем самым потеряю информацию по всем остальным дням, а она мне тоже очень нужна. Может Вы еще что-нибудь сможете посоветовать?
...
Рейтинг: 0 / 0
Вычисление суумы на узлах
    #33006186
Torin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АналитикРазмер таблицы фактов = 2000000 записей, которая с каждым днем увеличиваются на 300000 записей.

В ХД сейчас только неделя работы ??

Аналитик
Я согласен, как вариант, такое решение проблемы исключать нельзя, но создав такую таблицу я тем самым потеряю информацию по всем остальным дням, а она мне тоже очень нужна. Может Вы еще что-нибудь сможете посоветовать?
Как это Вы ее потеряете ? Ничего не потеряете !
...
Рейтинг: 0 / 0
Вычисление суумы на узлах
    #33006617
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АналитикРазмер таблицы фактов = 2000000 записей, которая с каждым днем увеличиваются на 300000 записей.

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

Я согласен, как вариант, такое решение проблемы исключать нельзя, но создав такую таблицу я тем самым потеряю информацию по всем остальным дням, а она мне тоже очень нужна. Может Вы еще что-нибудь сможете посоветовать?

вы наверное меня неправильно поняли.

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

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

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

Исходные данные:
Точка 1 посещалась 05.04.05 в ней было наличие 2
Точка 1 также посещалась 07.04.05 в ней было наличие 5
Точка 2 посещалась 08.04.05 в ней было наличие 6
Точка 3 посещалась 06.04.05 в ней было наличие 1
Точка 3 посещалась 08.04.05 в ней было наличие 5

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

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

Результат равен = Точка 1 последний раз посещалась 07.04.05 в ней было наличие 5 + Точка 2 последний раз посещалась 08.04.05 в ней было наличие 6 + Точка 3 последний раз посещалась 08.04.05 в ней было наличие 5

Итого резельтат для выбранного города за неделю = 5+6+5 = 16
...
Рейтинг: 0 / 0
Вычисление суумы на узлах
    #33007674
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
То как вы считаете, без сомнения, правильно, но вы не сможете получит "летающего" куба, ибо ваш алгоритм можно реализовать только в Cell Calculation, а это улитка по сравнению с запросом к предаггрегированным данным.
...
Рейтинг: 0 / 0
Вычисление суумы на узлах
    #33007694
Аналитик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Значит насколько я понял, мне необходимо в SQL сделать выборку по остаткам на последний день по каждой торговой точке?
...
Рейтинг: 0 / 0
Вычисление суумы на узлах
    #33008212
Аналитик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ау
...
Рейтинг: 0 / 0
Вычисление суумы на узлах
    #33009005
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АналитикАу

Мы, поди, не в лесу будем.

Вы поняли какие дельты (приращениях) я имел ввиду?

Если да, то является ли вашей текущей проблемой заполнение таблицы дельтами?

p.s. Если есть желание то ICQ 61-168-970
...
Рейтинг: 0 / 0
Вычисление суумы на узлах
    #33009333
Аналитик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Прошу прощения за "Ау",
ДА действительно основной проблемой для меня сейчас является заполнение таблицы дельтами, т.к. не очень понимаю какие эти дельты должны быть для моей задачи.

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

Что конкретно вам не ясно тут
...
Рейтинг: 0 / 0
Вычисление суумы на узлах
    #33010691
Jurii
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 backfire:

Юрий, ваше сообщение, как неэтичное, удалено

Там не было ничего неэтичного, у Вас просто недостаточно развито чувство юмора. Видимо Вы удалили это сообщение до того, как его прочитал г-н Аналитик. Придется мне найти еще 10 минут, чтобы его написать вновь (используя максимально нейтральную терминологию :)

2 Аналитик:

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

Здесь же люди общаются по делу. А ваши примеры явно не в тему.

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

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

Здесь же люди общаются по делу. А ваши примеры явно не в тему.

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

P.S. Если у Вас есть возможность отправить мне по почте мое сообщение, которое Вы удалили - сделайте это, чтобы я не тратил лишнее время на его переписывание.

Юра, вы прекрасно понимаете, ваше сообщение было расценено мною как не этичное не за цифры и математические действия а за пример на котором вы эти цифры строили.

Дальнейшие на тему удаленного постинга считаю пустой тратой времени и ресурса клавиатуры.

А Вам Юра стоит поучится этикету письменного общения, в том числе, когда вы обращаетесь к кому то с просьбой. Или ваш P.S. ошибочно расценен мною как просьба, а на самом деле вы даете мне указание что то сделать?
...
Рейтинг: 0 / 0
Вычисление суумы на узлах
    #33011940
Аналитик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уважаемые господа, давайте вернемся к делу. Вопрос остался не закрыт для меня, да действительно у меня нет опыта в создании дельт, я бы хотел с этим подробно разобраться, т.к. проблема и задача очень для меня важна, прошу вас помочь.
...
Рейтинг: 0 / 0
Вычисление суумы на узлах
    #33012145
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
у меня нет опыта в создании дельт

Прежде всего я вам посоветую хороший учебник по вычмату.
Затем и творения Кимбала о DWH.
А если чуствуете слабину в SQL, то Джой Целко то что надо.
...
Рейтинг: 0 / 0
Вычисление суумы на узлах
    #33013054
Аналитик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я понял, но проблем с пониманием что такое дельта у меня нет,
основной проблемой является то что для моей задачи не нужно вычислять дельт,
мне всего лиш нужно брать значение по последнему посещению точки и дельт вычислять не нужно, хотя в будущем мне это тоже понадобится для получения прироста, но со временем.

Так вот в MS AS на уровне точек получить значения последних посещений не проблема и я их уже получил, проблема в том что пересчитать суммы на узлах занимает очень много времени. Узлами в моей задаче являются уровни: Город, Регион, Страна.

Если в город входит 4 точки то считает мгновенно, но если в город входит 3000 точек именно здесь и присходит очень большая задержка при вычислении суммы значений по последним посещениям точек.

Исходные данные в кубе - это значения по всем посещениям по каждому дню, по всем точкам. Я фильтрую данные при помощи Callculated Cells, фильтр срабатывает на уровне точек, т.е. для каждой точки я вывожу значения последнего ее посещения для заданного интервала времени. Уровень точек у меня является самым последним в ирархии, для всех остальных уровней я делаю сумму по отфильтрованным значениям, т.е. сумму по последним посещениям точек входящих в заданный уровень.

В SQL Server сделать выборку по последним посещениям точек, а потом на основании этих данных сделать куб не является корректным, т.к. в этом случае я буду терять данные по непоследним посещениям.

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

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

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

Я создаю таблицу фактов, в которой
для первого визита дельта1 = 2
для второго визита дельта2 = 1.

За неделю, я действительно получу остаток дельта1+дельта2=3.

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

Если Вам не сложно привести пример SQL запроса в котором происходит вычисление дельт, я был бы Вам очень благодарен.
...
Рейтинг: 0 / 0
Вычисление суумы на узлах
    #33013876
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Но если я захочу посмотреть информацию по точке по дням
следовательно я получу из куба значение дельт, а не остатков по дням. А мне нужны именно остатки в таком случае. Как быть в этой ситуации


В этом случае вам надо будет на каждый день получить сумму приращений

что то в этом роде Sum(PeriodsToDate(Time.[(All)], Time.CuttentMember)).

Советую вам почитать эту статейку Ричарда Ткачука (кстати одного из авторов AS)
Inventory Management Calculations in SQL Server Analysis Services 2005

Не пугайтесь, что в заголовке стоит 2005. Львиная доля излоденного применима к AS2K.
...
Рейтинг: 0 / 0
Вычисление суумы на узлах
    #33014421
Jurii
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Аналитик:

За неделю, я действительно получу остаток дельта1+дельта2=3.
Но если я захочу посмотреть информацию по точке по дням
следовательно я получу из куба значение дельт, а не остатков по дням. А мне нужны именно остатки в таком случае. Как быть в этой ситуации.


В боковике отчета Вы размещаете свои точки (или сначала города, которые с помощью дрилл-дауна раскроются в точки), а в шапке отчета - периоды времени, в течение которых Вы хотите посмотреть динамику остатков. Например в шапке отчета могут быть 2002 год, 2003 год, 2004 год, 1 квартал 2005 года, все дни апреля 2005 года. В качестве показателя у вас должны быть дельты. Например, для 2003 года по точке 1 у Вас будет отрицательное число (если остаток на начало года был больше, чем на конец года), некоторые из дней будут нулевыми, так как остаток не менялся каждый день.
После этого Вы должны в OLAP-клиенте выделить все строки, и применить к ним функцию нарастающего итога. В итоге Вы получите динамику остатков за выбранные периоды.
Правда OLAP-клиент должен позволять вычислять нарастающий итог и скрывать ненужные строки (так как сами по себе дельты не так интересны, по сравнению с нарастающим итогом на их основе).
Чтобы не надо было делать вручную нарастающий итог, можно на OLAP-сервере создать вычисляемые категории/мемберы (типа вся история до текущей даты, до вчерашней даты, на N дней назад и т.д.).
...
Рейтинг: 0 / 0
Вычисление суумы на узлах
    #33014428
Аналитик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Огромное спасибо, но не обольщайтесь, я не думаю что на этом наша дискусия завершилась, если Вы не против.
...
Рейтинг: 0 / 0
Вычисление суумы на узлах
    #33014433
Аналитик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Но все же, прошу прощения за насточивость, можно Вас попросить пример SQL- запроса в котором осуществляется расчет дельт.
Еще раз прошу прощения, не сочтите за наглость.
...
Рейтинг: 0 / 0
Вычисление суумы на узлах
    #33015302
Аналитик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня есть таблица в SQL с полями Точка, Дата, Остаток, каким образом мне написать запрос, что бы получить дельты ?
...
Рейтинг: 0 / 0
Вычисление суумы на узлах
    #33015428
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АналитикУ меня есть таблица в SQL с полями Точка, Дата, Остаток, каким образом мне написать запрос, что бы получить дельты ?

форуме по SQL вам наверняка напишут что-то более оптимальное, но как первое приближение.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
create table ostatki(point int, date datetime, ostatok int)

insert ostatki values( 1 , '01.01.2005',  10 )
insert ostatki values( 1 , '01.02.2005',  5 )
insert ostatki values( 2 , '05.01.2005',  20 )
insert ostatki values( 2 , '20.02.2005',  10 )
insert ostatki values( 3 , '10.01.2005',  40 )
insert ostatki values( 3 , '05.02.2005',  50 )
insert ostatki values( 4 , '10.02.2005',  10 )

select 
	t3.point,
	t3.date,
	t3.ostatok - coalesce(t4.ostatok,  0 ) as delta
from (
	select 
		t1.point,
		t1.date,
		t1.ostatok,
		max(t2.date) as prevdate
	from ostatki as t1 
	left outer join ostatki as t2
		on t1.point = t2.point and t1.date > t2.date
	group by 	t1.point, t1.date, t1.ostatok
) as t3 left outer join ostatki as t4
on t3.point = t4.point and t3.prevdate = t4.date
...
Рейтинг: 0 / 0
Вычисление суумы на узлах
    #33015883
Аналитик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо огромнейшее.
...
Рейтинг: 0 / 0
Вычисление суумы на узлах
    #33015904
Аналитик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Но, я думаю, что все же мы еще продолжим обсуждение, хотя понимаю, что наверное уже надоел.
...
Рейтинг: 0 / 0
Вычисление суумы на узлах
    #33026545
Dmitry Biryukov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ещё как вариант можно в таблицу фактов добавить записей для каждого дня
тогда надо написать Custom Rollup формулу для измерения время Time.CurrentMember.LastChild и всё будет ОК
...
Рейтинг: 0 / 0
Вычисление суумы на узлах
    #33026568
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dmitry Biryukovещё как вариант можно в таблицу фактов добавить записей для каждого дня
тогда надо написать Custom Rollup формулу для измерения время Time.CurrentMember.LastChild и всё будет ОК

м что же покажет Time.CurrentMember.LastChild для 2005.04, если остатки занесены только до 2005.04.20, а для 2005.04.30 в таблице фактов остатков пусто? А хочется видеть текущие остатки.

Позвольте вопрос. А вы храните остаки на каждый день?
...
Рейтинг: 0 / 0
Вычисление суумы на узлах
    #33026571
Dmitry Biryukov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
backfireчто же покажет Time.CurrentMember.LastChild для 2005.04, если остатки занесены только до 2005.04.20, а для 2005.04.30 в таблице фактов остатков пусто?в предлагаемом мною варианте такого быть не может. т.к. я предлагаю дополнить таблицу фактов недостающими записями для каждой пары точка-день.
Ежели надо учитывать кол-во визитов и др. параметры, которые "портят" искуственно добавленные записи, то можно добавить признак "реальная цифра" или "искусственная", и соотв. измерение в куб.

Я остатки не храню. я храню движения.

Кроме того в начальных условиях было сказано
АналитикКаждая точка посещается ежедневно
Если с дельтами (они же движения) туго, то можно попробовать мой вариант.
...
Рейтинг: 0 / 0
Вычисление суумы на узлах
    #33026602
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все горазло проще, ни надо никаких искусивенных записей, "левых" измерений и т.п. просто надо брать не просто последнего child, а последнего непустого child (без NECJ и бубна конечно не обойтись)
...
Рейтинг: 0 / 0
Вычисление суумы на узлах
    #33026938
Dmitry Biryukov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
хотелось бы ещё и оценить сложность и производительность предложенных решений...
...
Рейтинг: 0 / 0
Вычисление суумы на узлах
    #33027616
Аналитик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Извените за столь долгое отсутствие.

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

Точка 1 посещалась 01.02.05 Остаток 10
Точка 1 посещалась 30.02.05 Остаток 5
Точка 1 посещалась 02.03.05 Остаток 11
Точка 1 посещалась 04.03.05 Остаток 5

Точка 1 входит в Город1

Вычисляем дельты:
Точка 1 посещалась 01.02.05 Остаток 10
Точка 1 посещалась 30.02.05 Остаток -5
Точка 1 посещалась 02.03.05 Остаток 6
Точка 1 посещалась 04.03.05 Остаток -6

Замечательно, в MS AS я смотрю остаток по Точке 1 за весь период он равен
10+(-5)+6+(-6) = 5, все правильно вопросов нет

Замечательно, в MS AS я смотрю остаток по Точке 1 за 02 месяц он равен
10+(-5)= 5, все правильно вопросов нет.

Но, когда я смотрю остаток за 03 месяц я получаю остаток 6+(-6) =0,
но ведь это не правильно остаток должен быть равен 5

КАК мне выйти из этой проблемы?
...
Рейтинг: 0 / 0
Вычисление суумы на узлах
    #33027984
Dmitry Biryukov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ищите темы про остатки и используйте Calc Member с OpeningPeriods
...
Рейтинг: 0 / 0
Вычисление суумы на узлах
    #33028144
Аналитик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Даже если я использую дельты?
...
Рейтинг: 0 / 0
Вычисление суумы на узлах
    #33028218
Dmitry Biryukov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
именно поэтому
...
Рейтинг: 0 / 0
Вычисление суумы на узлах
    #33028365
Аналитик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А более конкретней
...
Рейтинг: 0 / 0
Вычисление суумы на узлах
    #33028401
Dmitry Biryukov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
чтобы увидеть правильный остаток на Март месяц надо складывать дельты не только за Март, но и за все предыдущие периоды.
это будет SUM(OpenPeriods(...),delta)
а поиск всё-таки рулит
...
Рейтинг: 0 / 0
Вычисление суумы на узлах
    #33028413
Аналитик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я понял, спасибо сейчас попробую
...
Рейтинг: 0 / 0
Вычисление суумы на узлах
    #33028525
Аналитик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
К сожалению не очень понял, как это сделать, поищу по форуму.
...
Рейтинг: 0 / 0
Вычисление суумы на узлах
    #33028555
Аналитик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я не могу понять почему, Opening Period, а не PeriodsToDate?
...
Рейтинг: 0 / 0
Вычисление суумы на узлах
    #33028566
Dmitry Biryukov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сори, Вы правы. именно PeriodsToDate
...
Рейтинг: 0 / 0
Вычисление суумы на узлах
    #33028731
Можно получить всех предков текущего элемента времени на всех уровнях, кроме All Levels, заменить каждого элемента из этого множества предков предыдущим из его братьев, или ничем, если он первый брат, добавить к полученному множеству всех братьев рассматриваемого элемента, которые идут перед ним и просуммировать полученное множество. Это будет остаток на рассматриваемый элемент. Прошу прощения за сумбурность, рабочего MDX кода нет, поэтому описываю словами.
...
Рейтинг: 0 / 0
Вычисление суумы на узлах
    #33028803
Аналитик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Валентин, не очень понятно Ваше пояснение
...
Рейтинг: 0 / 0
Вычисление суумы на узлах
    #33028919
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Просто Валентин постарался словами изложить вам MDX формулу, которая
- встречается в каждом 5-м топике на тему остатков в этом форуме (поиск "Ascendants")
- изложена Ткачуком в статье о рассчете остатков (см. линк в выше в одном из моих постов)
...
Рейтинг: 0 / 0
Вычисление суумы на узлах
    #33029009
Аналитик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ок, проблем нет считает все супер если рассматривать вариант
точка дата остаток.
Но проблема теперь в том, что в каждой точке остатки отслеживаются по конкретному товару (перечень товаров фиксированный).
При вводе данных остатки вводятся только на те продукты которые есть, если продукта в точке нет то запись в базе вообще не хранится, т.е. в базе вообще нет нулевых остатков.
Таким образом Если в апреле товара не было, то в марте он мог появится.
Рассмотрим пример:
В январе в точке встречался
товар1 с остатком 2,
товар4 с остатком 3,
товар5 с остатком 4.
В феврале в точке встречался
товар1 с остатком 1,
товар2 с остатком 2,
товар3 с остатком 3.
В марте встречался
товар1 с остатком 1,
товар4 с остатком 4.

Соответственно дельты равны:
В январе
товар1 дельта= 2,
товар4 дельта= 3,
товар5 дельта= 4.
В феврале
товар1 дельта= -1,
товар2 дельта= 2,
товар3 дельта= 4.
В марте
товар1 дельта= 0
товар4 дельта= 1

У меня в MS AS есть уровень "Все товары".
Так вот я хочу посмотреть по данной точке в марте месяце остатки по "Всем товарам", в моем случае в марте месяце в точке был товар1 и товар4.

Используя Sum(PeriodsToDate(Time.[(All)], Time.CuttentMember)), я получаю остаток который получается в результате складывания дельт за весь период по всем товарам, т.е.
остаток за март= 2+3+4+(-1)+2+4+0+1=15, что не есть правильно так как в марте месяце я должен получить остаток только суммируя дельты товара1 и товара4. Остаток марта должен быть равен 5
Как это сделать я не знаю. Если еще осталось желание помочь, очень прошу Вас это сделать.
...
Рейтинг: 0 / 0
Вычисление суумы на узлах
    #33029286
Dmitry Biryukov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Аналитикесли продукта в точке нет то запись в базе вообще не хранится, т.е. в базе вообще нет нулевых остатковпридётся такие записи всё таки хранить. или сделать вьюшку которая эти записи добавит
...
Рейтинг: 0 / 0
Вычисление суумы на узлах
    #33029477
Аналитик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ой, скажите, а МДХ-запросом как-нибудь фильтровать не получится?
...
Рейтинг: 0 / 0
Вычисление суумы на узлах
    #33029594
Dmitry Biryukov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
может и получится. я не знаю
только надо не фильтровать, а добавлять факты нулевого остатка
...
Рейтинг: 0 / 0
Вычисление суумы на узлах
    #33029635
Аналитик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Значит на сколько я понял в любом случае даже если в магазине нет товара мне нужно создавать запись для этого товара с остатком 0
...
Рейтинг: 0 / 0
Вычисление суумы на узлах
    #33029657
Dmitry Biryukov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
можно не физические записи, а виртуальные (во view) попробуйте что будет быстрее работать
...
Рейтинг: 0 / 0
Вычисление суумы на узлах
    #33030563
backfireПросто Валентин постарался словами изложить вам MDX формулу, которая
- встречается в каждом 5-м топике на тему остатков в этом форуме (поиск "Ascendants")
- изложена Ткачуком в статье о рассчете остатков (см. линк в выше в одном из моих постов)
Прошу прощения, тем более, что изложил с ошибками
...
Рейтинг: 0 / 0
Вычисление суумы на узлах
    #33031003
Аналитик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пробую, расчитать дельты для 5600345 записей. Уже 40 минут считает.
Использую SQL запрос приведенный в обсуждении.
...
Рейтинг: 0 / 0
Вычисление суумы на узлах
    #33031654
Аналитик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хочу поблагодарить господина Backfire за приведенную ссылку в данном обсуждении,действительно очень полезная информация.
...
Рейтинг: 0 / 0
Вычисление суумы на узлах
    #33031701
Аналитик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все работает, все считает замечательно.
Но теперь появилась новая проблема:
В таблице фактов 6 500 000 записей.
Расчет дельт занял 2 часа 25 минут.
Процессирования куба заняло 1 час 2 минуты.
Размер куба вырос до 120 Мб.

Можно ли ускорить время вычисления и уменьшить размер куба?
...
Рейтинг: 0 / 0
Вычисление суумы на узлах
    #33031733
Alex Fox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Позволю свои 5 коп.
Разве 120М это размер?;)
Я так понимаю что дельты необязательно расчитывать постоянно полностью.
Эти 2.5 + 1 часа можно рассматривать как первоночальное наполнение.
Ну а потом забахать механизм частичного обновления фактов. Ведт известно, что меняется.
Куб побить по партициям(ну правда если EE).
Затраченное время должно стремительно упасть и пару раз отжаться...
...
Рейтинг: 0 / 0
Вычисление суумы на узлах
    #33031852
Аналитик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чесно признаюсь, никогда не разбивал куб на партиции, если возможно обьяснить пожалуйста это сделайте или дайте ссылочку почитать как это сделать.
...
Рейтинг: 0 / 0
Вычисление суумы на узлах
    #33031855
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АналитикЧесно признаюсь, никогда не разбивал куб на партиции, если возможно обьяснить пожалуйста это сделайте или дайте ссылочку почитать как это сделать.

Вы для начала прочитайте фирменную доку к AS. Managing Partitions

А потом, коль что не ясно Вам будет, задавайте вопросы здесь.
...
Рейтинг: 0 / 0
Вычисление суумы на узлах
    #33033217
Аналитик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо большое за ссылку
...
Рейтинг: 0 / 0
80 сообщений из 80, показаны все 4 страниц
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Вычисление суумы на узлах
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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