Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Вычисление суумы на узлах
|
|||
|---|---|---|---|
|
#18+
Помогите пожалуйста с проблемой: У меня есть измерение Регион-Город-Точка. Каждая точка посещается ежедневно, в ней отмечается наличие товара. Мне нужно получить информацию по наличию товара в точке за месяц, год для города причем считать наличие только по последнему посещению точки. Например: Точка 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, тормоза ужасные. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2005, 12:54 |
|
||
|
Вычисление суумы на узлах
|
|||
|---|---|---|---|
|
#18+
Уважаемый аналитик, рекомендую ознакомиться для начала с правилами форума на предмет правильного оформления вопросов. Ни продукта, с которым Вы работаете, ни то, как Вы решаете задачу сейчас. Какой после этого ответ Вы ожидаете получить? С уважением, Константин Лисянский http://lissianski.narod.ru ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2005, 13:07 |
|
||
|
Вычисление суумы на узлах
|
|||
|---|---|---|---|
|
#18+
Извените, за незнание правил, но я на форуме впервые. Используя Microsoft Analysis Manager. Я бы хотел попросить совета как оптимальней это сделать, не учитывая моих наработок. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2005, 13:49 |
|
||
|
Вычисление суумы на узлах
|
|||
|---|---|---|---|
|
#18+
Я делаю следующим образом: Нахожу показатель наличия товара по последнему посещению точки и записываю его еще раз для каждой точки, после чего осуществляю пересчет для уровня Город и Регион, суммируя полученные значения по точкам входящим в соответствующий регион, дивизион. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2005, 14:37 |
|
||
|
Вычисление суумы на узлах
|
|||
|---|---|---|---|
|
#18+
Очень прошу, помочь проблему, спасите утопающего в проблеме человека ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2005, 14:39 |
|
||
|
Вычисление суумы на узлах
|
|||
|---|---|---|---|
|
#18+
2 Аналитик: Мне приходилось решать такие задачи. Поступал я так: делал вьюшку или таблицу, в которую на даты наличия информации об остатках вычислялись приросты или уменеьшения остатков. Далее в OLAP-клиенте (PowerPlay) брал нарастающий итог от этих дельт. Это позволяет увидеть динамику остатков как на уровне города, так и на уровне точки, или посмотреть остатки на любую дату. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2005, 14:57 |
|
||
|
Вычисление суумы на узлах
|
|||
|---|---|---|---|
|
#18+
Если честно не очень понял, если можно обьяснить подробней, было бы хорошо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2005, 14:59 |
|
||
|
Вычисление суумы на узлах
|
|||
|---|---|---|---|
|
#18+
Я решаю свою задачу путем постоянного пересчитывания для разных уровней, что занимает очень много времени и является очень не эффективным. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2005, 15:02 |
|
||
|
Вычисление суумы на узлах
|
|||
|---|---|---|---|
|
#18+
2 Аналитик: Если честно не очень понял, если можно обьяснить подробней, было бы хорошо Сейчас я должен отъехать из офиса, объяснить не успею, если Вам это срочно - напишите мне на адрес cognos@narod.ru Ваш контактный телефон, я Вам перезвоню. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2005, 15:05 |
|
||
|
Вычисление суумы на узлах
|
|||
|---|---|---|---|
|
#18+
Проблема в том, что я нахожусь в Украине, напишите пожалуйста когда у Вас появится время. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2005, 15:09 |
|
||
|
Вычисление суумы на узлах
|
|||
|---|---|---|---|
|
#18+
Если, еще кто-нибудь решал такие проблемы - помогите ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2005, 15:34 |
|
||
|
Вычисление суумы на узлах
|
|||
|---|---|---|---|
|
#18+
АналитикПомогите пожалуйста с проблемой: У меня есть измерение Регион-Город-Точка. Каждая точка посещается ежедневно, в ней отмечается наличие товара. Мне нужно получить информацию по наличию товара в точке за месяц, год для города причем считать наличие только по последнему посещению точки. Например: Точка 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 доп таблички. а) остатки на начало какого либо периода (месяца, года, квартала). в) движения остатков как делту до и после пересчета. И задача отображения результатов в кубе сводится к "кубу остатков". Которому на этом форуме достаточно много дискуссий посвящено - не поленитесь вызвать поиск. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2005, 17:23 |
|
||
|
Вычисление суумы на узлах
|
|||
|---|---|---|---|
|
#18+
Я согласен, что можно добавить пару табличек в SQL, но данные по остаткам в SQL у меня уже есть, зачем мне еще раз их дублировать в другие таблички, при этом увеличивая размер базы, а также время процессирования куба. Но все таки если Вам не сложно обьясните что имеется ввиду - "в) движения остатков как делту до и после пересчета". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2005, 19:50 |
|
||
|
Вычисление суумы на узлах
|
|||
|---|---|---|---|
|
#18+
"в) движения остатков как делту до и после пересчета". Каким образом это можно осуществить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2005, 19:54 |
|
||
|
Вычисление суумы на узлах
|
|||
|---|---|---|---|
|
#18+
АналитикЯ согласен, что можно добавить пару табличек в 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 ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2005, 20:20 |
|
||
|
Вычисление суумы на узлах
|
|||
|---|---|---|---|
|
#18+
Размер таблицы фактов = 2000000 записей, которая с каждым днем увеличиваются на 300000 записей. Т.е. из Вашего предложения я понял: необходимо в SQL создать таблицу в которой будет хранится информация о последних не пустых посещениях по каждой точке, которые потом агрегировать посредством куба. Я согласен, как вариант, такое решение проблемы исключать нельзя, но создав такую таблицу я тем самым потеряю информацию по всем остальным дням, а она мне тоже очень нужна. Может Вы еще что-нибудь сможете посоветовать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2005, 20:42 |
|
||
|
Вычисление суумы на узлах
|
|||
|---|---|---|---|
|
#18+
АналитикРазмер таблицы фактов = 2000000 записей, которая с каждым днем увеличиваются на 300000 записей. В ХД сейчас только неделя работы ?? Аналитик Я согласен, как вариант, такое решение проблемы исключать нельзя, но создав такую таблицу я тем самым потеряю информацию по всем остальным дням, а она мне тоже очень нужна. Может Вы еще что-нибудь сможете посоветовать? Как это Вы ее потеряете ? Ничего не потеряете ! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2005, 00:35 |
|
||
|
Вычисление суумы на узлах
|
|||
|---|---|---|---|
|
#18+
АналитикРазмер таблицы фактов = 2000000 записей, которая с каждым днем увеличиваются на 300000 записей. Т.е. из Вашего предложения я понял: необходимо в SQL создать таблицу в которой будет хранится информация о последних не пустых посещениях по каждой точке, которые потом агрегировать посредством куба. Я согласен, как вариант, такое решение проблемы исключать нельзя, но создав такую таблицу я тем самым потеряю информацию по всем остальным дням, а она мне тоже очень нужна. Может Вы еще что-нибудь сможете посоветовать? вы наверное меня неправильно поняли. я вам предлагаю записывать в ваше хранилище не данные о количестве на точке, а приращения количесва с момента предыдущего посещения точки. Ничего вы терять не будете. Это вам понятно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2005, 21:56 |
|
||
|
Вычисление суумы на узлах
|
|||
|---|---|---|---|
|
#18+
Что Вы подразумеваете под словом приращение? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2005, 10:20 |
|
||
|
Вычисление суумы на узлах
|
|||
|---|---|---|---|
|
#18+
АналитикЧто Вы подразумеваете под словом приращение? Разницу между текущим остатком и предыдущим остатком. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2005, 10:23 |
|
||
|
Вычисление суумы на узлах
|
|||
|---|---|---|---|
|
#18+
Можно ли привести пример формирование таблицы с дельтами с использованием непосредственно запроса? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2005, 10:25 |
|
||
|
Вычисление суумы на узлах
|
|||
|---|---|---|---|
|
#18+
На самом деле мне нужно сделать следующее: Исходные данные: Точка 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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2005, 10:32 |
|
||
|
Вычисление суумы на узлах
|
|||
|---|---|---|---|
|
#18+
То как вы считаете, без сомнения, правильно, но вы не сможете получит "летающего" куба, ибо ваш алгоритм можно реализовать только в Cell Calculation, а это улитка по сравнению с запросом к предаггрегированным данным. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2005, 11:21 |
|
||
|
Вычисление суумы на узлах
|
|||
|---|---|---|---|
|
#18+
Значит насколько я понял, мне необходимо в SQL сделать выборку по остаткам на последний день по каждой торговой точке? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2005, 11:31 |
|
||
|
Вычисление суумы на узлах
|
|||
|---|---|---|---|
|
#18+
АналитикАу Мы, поди, не в лесу будем. Вы поняли какие дельты (приращениях) я имел ввиду? Если да, то является ли вашей текущей проблемой заполнение таблицы дельтами? p.s. Если есть желание то ICQ 61-168-970 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2005, 17:34 |
|
||
|
Вычисление суумы на узлах
|
|||
|---|---|---|---|
|
#18+
Прошу прощения за "Ау", ДА действительно основной проблемой для меня сейчас является заполнение таблицы дельтами, т.к. не очень понимаю какие эти дельты должны быть для моей задачи. К сожалению у меня нет возможности пок авыйти в аську. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2005, 20:10 |
|
||
|
Вычисление суумы на узлах
|
|||
|---|---|---|---|
|
#18+
Юрий, ваше сообщение, как неэтичное, удалено ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2005, 23:58 |
|
||
|
Вычисление суумы на узлах
|
|||
|---|---|---|---|
|
#18+
На сколько я понял, конкретный ответ получить я не смогу ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2005, 13:33 |
|
||
|
Вычисление суумы на узлах
|
|||
|---|---|---|---|
|
#18+
2 backfire: Юрий, ваше сообщение, как неэтичное, удалено Там не было ничего неэтичного, у Вас просто недостаточно развито чувство юмора. Видимо Вы удалили это сообщение до того, как его прочитал г-н Аналитик. Придется мне найти еще 10 минут, чтобы его написать вновь (используя максимально нейтральную терминологию :) 2 Аналитик: Поскольку подробный ответ на Ваш вопрос был удален модератором до того, как Вы его прочитали, рекомендую Вам сообщить мне Ваш электронный адрес, чтобы я выслал Вам ответ напрямую. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2005, 13:48 |
|
||
|
Вычисление суумы на узлах
|
|||
|---|---|---|---|
|
#18+
Юра, вы можете писать в "просто треп" и отпускать там шуточки, пока пальцы в кровь не сотрутся. Здесь же люди общаются по делу. А ваши примеры явно не в тему. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2005, 14:02 |
|
||
|
Вычисление суумы на узлах
|
|||
|---|---|---|---|
|
#18+
2 backfire: Здесь же люди общаются по делу. А ваши примеры явно не в тему. Мой подход, где я предлагаю использовать дельты совпадает с Вашим подходом. Так что если мои примеры не в тему - Ваши получаются тоже не в тему. Я думаю у г-на Аналитика довольно мало опыта, и он не понимает, что такое дельта. Поэтому ему надо привести пример, где дельты не только положительные, но и отрицательные, так он скорее разберется. P.S. Если у Вас есть возможность отправить мне по почте мое сообщение, которое Вы удалили - сделайте это, чтобы я не тратил лишнее время на его переписывание. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2005, 14:19 |
|
||
|
Вычисление суумы на узлах
|
|||
|---|---|---|---|
|
#18+
Jurii2 backfire: Здесь же люди общаются по делу. А ваши примеры явно не в тему. Мой подход, где я предлагаю использовать дельты совпадает с Вашим подходом. Так что если мои примеры не в тему - Ваши получаются тоже не в тему. Я думаю у г-на Аналитика довольно мало опыта, и он не понимает, что такое дельта. Поэтому ему надо привести пример, где дельты не только положительные, но и отрицательные, так он скорее разберется. P.S. Если у Вас есть возможность отправить мне по почте мое сообщение, которое Вы удалили - сделайте это, чтобы я не тратил лишнее время на его переписывание. Юра, вы прекрасно понимаете, ваше сообщение было расценено мною как не этичное не за цифры и математические действия а за пример на котором вы эти цифры строили. Дальнейшие на тему удаленного постинга считаю пустой тратой времени и ресурса клавиатуры. А Вам Юра стоит поучится этикету письменного общения, в том числе, когда вы обращаетесь к кому то с просьбой. Или ваш P.S. ошибочно расценен мною как просьба, а на самом деле вы даете мне указание что то сделать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2005, 14:34 |
|
||
|
Вычисление суумы на узлах
|
|||
|---|---|---|---|
|
#18+
Уважаемые господа, давайте вернемся к делу. Вопрос остался не закрыт для меня, да действительно у меня нет опыта в создании дельт, я бы хотел с этим подробно разобраться, т.к. проблема и задача очень для меня важна, прошу вас помочь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2005, 20:25 |
|
||
|
Вычисление суумы на узлах
|
|||
|---|---|---|---|
|
#18+
у меня нет опыта в создании дельт Прежде всего я вам посоветую хороший учебник по вычмату. Затем и творения Кимбала о DWH. А если чуствуете слабину в SQL, то Джой Целко то что надо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2005, 00:19 |
|
||
|
Вычисление суумы на узлах
|
|||
|---|---|---|---|
|
#18+
Я понял, но проблем с пониманием что такое дельта у меня нет, основной проблемой является то что для моей задачи не нужно вычислять дельт, мне всего лиш нужно брать значение по последнему посещению точки и дельт вычислять не нужно, хотя в будущем мне это тоже понадобится для получения прироста, но со временем. Так вот в MS AS на уровне точек получить значения последних посещений не проблема и я их уже получил, проблема в том что пересчитать суммы на узлах занимает очень много времени. Узлами в моей задаче являются уровни: Город, Регион, Страна. Если в город входит 4 точки то считает мгновенно, но если в город входит 3000 точек именно здесь и присходит очень большая задержка при вычислении суммы значений по последним посещениям точек. Исходные данные в кубе - это значения по всем посещениям по каждому дню, по всем точкам. Я фильтрую данные при помощи Callculated Cells, фильтр срабатывает на уровне точек, т.е. для каждой точки я вывожу значения последнего ее посещения для заданного интервала времени. Уровень точек у меня является самым последним в ирархии, для всех остальных уровней я делаю сумму по отфильтрованным значениям, т.е. сумму по последним посещениям точек входящих в заданный уровень. В SQL Server сделать выборку по последним посещениям точек, а потом на основании этих данных сделать куб не является корректным, т.к. в этом случае я буду терять данные по непоследним посещениям. Вот такая проблемма. Я буду очень благодарен если мы прождолжим дискуссию и все таки найдем решение этой проблеме. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2005, 12:42 |
|
||
|
Вычисление суумы на узлах
|
|||
|---|---|---|---|
|
#18+
проблема в том что пересчитать суммы на узлах занимает очень много времени. Узлами в моей задаче являются уровни: Город, Регион, Страна. В том то и дело. AS может быстро считать по предаггрегированнм данным, а те вычисления, к которым Вы его вынуждаете это не его "конек". Поэтому то я и предлагал вам создать таблицу фактов на приращениях остатка, а не на остатках. В этом случае остаток в для любой комбинации города и времени считается путем простого сложения приращений, а это AS может очень быстро и использует при этом предрассчитанные аггрегаты. Одним словом. Физическая мера должна быть суммируемой по любой координате. А Ваша мера "остаток" таковой не является. Вот вы и спускаетесь до вычислений на листовых уровнях, что пагубно сказывается на производительности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2005, 12:51 |
|
||
|
Вычисление суумы на узлах
|
|||
|---|---|---|---|
|
#18+
Ок, я понял и полность с Вами согласен. Но в случае если у меня точка посещалась 2-ва раза за неделю 1-ый раз в ней остаток был 2, 2-ой раз остаток был 3. Я создаю таблицу фактов, в которой для первого визита дельта1 = 2 для второго визита дельта2 = 1. За неделю, я действительно получу остаток дельта1+дельта2=3. Но если я захочу посмотреть информацию по точке по дням следовательно я получу из куба значение дельт, а не остатков по дням. А мне нужны именно остатки в таком случае. Как быть в этой ситуации. Если Вам не сложно привести пример SQL запроса в котором происходит вычисление дельт, я был бы Вам очень благодарен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2005, 15:27 |
|
||
|
Вычисление суумы на узлах
|
|||
|---|---|---|---|
|
#18+
Но если я захочу посмотреть информацию по точке по дням следовательно я получу из куба значение дельт, а не остатков по дням. А мне нужны именно остатки в таком случае. Как быть в этой ситуации В этом случае вам надо будет на каждый день получить сумму приращений что то в этом роде Sum(PeriodsToDate(Time.[(All)], Time.CuttentMember)). Советую вам почитать эту статейку Ричарда Ткачука (кстати одного из авторов AS) Inventory Management Calculations in SQL Server Analysis Services 2005 Не пугайтесь, что в заголовке стоит 2005. Львиная доля излоденного применима к AS2K. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2005, 16:20 |
|
||
|
Вычисление суумы на узлах
|
|||
|---|---|---|---|
|
#18+
2 Аналитик: За неделю, я действительно получу остаток дельта1+дельта2=3. Но если я захочу посмотреть информацию по точке по дням следовательно я получу из куба значение дельт, а не остатков по дням. А мне нужны именно остатки в таком случае. Как быть в этой ситуации. В боковике отчета Вы размещаете свои точки (или сначала города, которые с помощью дрилл-дауна раскроются в точки), а в шапке отчета - периоды времени, в течение которых Вы хотите посмотреть динамику остатков. Например в шапке отчета могут быть 2002 год, 2003 год, 2004 год, 1 квартал 2005 года, все дни апреля 2005 года. В качестве показателя у вас должны быть дельты. Например, для 2003 года по точке 1 у Вас будет отрицательное число (если остаток на начало года был больше, чем на конец года), некоторые из дней будут нулевыми, так как остаток не менялся каждый день. После этого Вы должны в OLAP-клиенте выделить все строки, и применить к ним функцию нарастающего итога. В итоге Вы получите динамику остатков за выбранные периоды. Правда OLAP-клиент должен позволять вычислять нарастающий итог и скрывать ненужные строки (так как сами по себе дельты не так интересны, по сравнению с нарастающим итогом на их основе). Чтобы не надо было делать вручную нарастающий итог, можно на OLAP-сервере создать вычисляемые категории/мемберы (типа вся история до текущей даты, до вчерашней даты, на N дней назад и т.д.). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2005, 19:32 |
|
||
|
Вычисление суумы на узлах
|
|||
|---|---|---|---|
|
#18+
Огромное спасибо, но не обольщайтесь, я не думаю что на этом наша дискусия завершилась, если Вы не против. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2005, 19:38 |
|
||
|
Вычисление суумы на узлах
|
|||
|---|---|---|---|
|
#18+
Но все же, прошу прощения за насточивость, можно Вас попросить пример SQL- запроса в котором осуществляется расчет дельт. Еще раз прошу прощения, не сочтите за наглость. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2005, 19:42 |
|
||
|
Вычисление суумы на узлах
|
|||
|---|---|---|---|
|
#18+
У меня есть таблица в SQL с полями Точка, Дата, Остаток, каким образом мне написать запрос, что бы получить дельты ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2005, 11:30 |
|
||
|
Вычисление суумы на узлах
|
|||
|---|---|---|---|
|
#18+
АналитикУ меня есть таблица в 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2005, 12:01 |
|
||
|
Вычисление суумы на узлах
|
|||
|---|---|---|---|
|
#18+
Спасибо огромнейшее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2005, 13:54 |
|
||
|
Вычисление суумы на узлах
|
|||
|---|---|---|---|
|
#18+
Но, я думаю, что все же мы еще продолжим обсуждение, хотя понимаю, что наверное уже надоел. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2005, 14:00 |
|
||
|
Вычисление суумы на узлах
|
|||
|---|---|---|---|
|
#18+
ещё как вариант можно в таблицу фактов добавить записей для каждого дня тогда надо написать Custom Rollup формулу для измерения время Time.CurrentMember.LastChild и всё будет ОК ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2005, 23:05 |
|
||
|
Вычисление суумы на узлах
|
|||
|---|---|---|---|
|
#18+
Dmitry Biryukovещё как вариант можно в таблицу фактов добавить записей для каждого дня тогда надо написать Custom Rollup формулу для измерения время Time.CurrentMember.LastChild и всё будет ОК м что же покажет Time.CurrentMember.LastChild для 2005.04, если остатки занесены только до 2005.04.20, а для 2005.04.30 в таблице фактов остатков пусто? А хочется видеть текущие остатки. Позвольте вопрос. А вы храните остаки на каждый день? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2005, 23:47 |
|
||
|
Вычисление суумы на узлах
|
|||
|---|---|---|---|
|
#18+
backfireчто же покажет Time.CurrentMember.LastChild для 2005.04, если остатки занесены только до 2005.04.20, а для 2005.04.30 в таблице фактов остатков пусто?в предлагаемом мною варианте такого быть не может. т.к. я предлагаю дополнить таблицу фактов недостающими записями для каждой пары точка-день. Ежели надо учитывать кол-во визитов и др. параметры, которые "портят" искуственно добавленные записи, то можно добавить признак "реальная цифра" или "искусственная", и соотв. измерение в куб. Я остатки не храню. я храню движения. Кроме того в начальных условиях было сказано АналитикКаждая точка посещается ежедневно Если с дельтами (они же движения) туго, то можно попробовать мой вариант. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2005, 23:54 |
|
||
|
Вычисление суумы на узлах
|
|||
|---|---|---|---|
|
#18+
Все горазло проще, ни надо никаких искусивенных записей, "левых" измерений и т.п. просто надо брать не просто последнего child, а последнего непустого child (без NECJ и бубна конечно не обойтись) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.04.2005, 00:59 |
|
||
|
Вычисление суумы на узлах
|
|||
|---|---|---|---|
|
#18+
хотелось бы ещё и оценить сложность и производительность предложенных решений... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.04.2005, 10:26 |
|
||
|
Вычисление суумы на узлах
|
|||
|---|---|---|---|
|
#18+
Извените за столь долгое отсутствие. Хочу уточнить по поводу посещений точек: Точка может посещаться каждый день, два раза в неделю, три раза в неделю, один раз в месяц, два раза в месяц, один раз в год и т.д.,т.е. посещение точек может быть любым, в зависимости от граффика посещений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.04.2005, 13:37 |
|
||
|
Вычисление суумы на узлах
|
|||
|---|---|---|---|
|
#18+
Ок, дельты это супер, но появилась следующая проблема: Вычисляе дельты в 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 КАК мне выйти из этой проблемы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.04.2005, 14:45 |
|
||
|
Вычисление суумы на узлах
|
|||
|---|---|---|---|
|
#18+
ищите темы про остатки и используйте Calc Member с OpeningPeriods ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.04.2005, 15:09 |
|
||
|
Вычисление суумы на узлах
|
|||
|---|---|---|---|
|
#18+
Даже если я использую дельты? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.04.2005, 15:41 |
|
||
|
Вычисление суумы на узлах
|
|||
|---|---|---|---|
|
#18+
именно поэтому ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.04.2005, 15:59 |
|
||
|
Вычисление суумы на узлах
|
|||
|---|---|---|---|
|
#18+
А более конкретней ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.04.2005, 16:33 |
|
||
|
Вычисление суумы на узлах
|
|||
|---|---|---|---|
|
#18+
чтобы увидеть правильный остаток на Март месяц надо складывать дельты не только за Март, но и за все предыдущие периоды. это будет SUM(OpenPeriods(...),delta) а поиск всё-таки рулит ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.04.2005, 16:41 |
|
||
|
Вычисление суумы на узлах
|
|||
|---|---|---|---|
|
#18+
Я понял, спасибо сейчас попробую ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.04.2005, 16:43 |
|
||
|
Вычисление суумы на узлах
|
|||
|---|---|---|---|
|
#18+
К сожалению не очень понял, как это сделать, поищу по форуму. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.04.2005, 17:19 |
|
||
|
Вычисление суумы на узлах
|
|||
|---|---|---|---|
|
#18+
Я не могу понять почему, Opening Period, а не PeriodsToDate? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.04.2005, 17:25 |
|
||
|
Вычисление суумы на узлах
|
|||
|---|---|---|---|
|
#18+
сори, Вы правы. именно PeriodsToDate ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.04.2005, 17:27 |
|
||
|
Вычисление суумы на узлах
|
|||
|---|---|---|---|
|
#18+
Можно получить всех предков текущего элемента времени на всех уровнях, кроме All Levels, заменить каждого элемента из этого множества предков предыдущим из его братьев, или ничем, если он первый брат, добавить к полученному множеству всех братьев рассматриваемого элемента, которые идут перед ним и просуммировать полученное множество. Это будет остаток на рассматриваемый элемент. Прошу прощения за сумбурность, рабочего MDX кода нет, поэтому описываю словами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.04.2005, 18:21 |
|
||
|
Вычисление суумы на узлах
|
|||
|---|---|---|---|
|
#18+
Валентин, не очень понятно Ваше пояснение ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.04.2005, 18:54 |
|
||
|
Вычисление суумы на узлах
|
|||
|---|---|---|---|
|
#18+
Просто Валентин постарался словами изложить вам MDX формулу, которая - встречается в каждом 5-м топике на тему остатков в этом форуме (поиск "Ascendants") - изложена Ткачуком в статье о рассчете остатков (см. линк в выше в одном из моих постов) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.04.2005, 20:29 |
|
||
|
Вычисление суумы на узлах
|
|||
|---|---|---|---|
|
#18+
Ок, проблем нет считает все супер если рассматривать вариант точка дата остаток. Но проблема теперь в том, что в каждой точке остатки отслеживаются по конкретному товару (перечень товаров фиксированный). При вводе данных остатки вводятся только на те продукты которые есть, если продукта в точке нет то запись в базе вообще не хранится, т.е. в базе вообще нет нулевых остатков. Таким образом Если в апреле товара не было, то в марте он мог появится. Рассмотрим пример: В январе в точке встречался товар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 Как это сделать я не знаю. Если еще осталось желание помочь, очень прошу Вас это сделать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.04.2005, 23:10 |
|
||
|
Вычисление суумы на узлах
|
|||
|---|---|---|---|
|
#18+
Аналитикесли продукта в точке нет то запись в базе вообще не хранится, т.е. в базе вообще нет нулевых остатковпридётся такие записи всё таки хранить. или сделать вьюшку которая эти записи добавит ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2005, 10:14 |
|
||
|
Вычисление суумы на узлах
|
|||
|---|---|---|---|
|
#18+
Ой, скажите, а МДХ-запросом как-нибудь фильтровать не получится? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2005, 11:18 |
|
||
|
Вычисление суумы на узлах
|
|||
|---|---|---|---|
|
#18+
может и получится. я не знаю только надо не фильтровать, а добавлять факты нулевого остатка ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2005, 11:52 |
|
||
|
Вычисление суумы на узлах
|
|||
|---|---|---|---|
|
#18+
Значит на сколько я понял в любом случае даже если в магазине нет товара мне нужно создавать запись для этого товара с остатком 0 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2005, 12:02 |
|
||
|
Вычисление суумы на узлах
|
|||
|---|---|---|---|
|
#18+
можно не физические записи, а виртуальные (во view) попробуйте что будет быстрее работать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2005, 12:07 |
|
||
|
Вычисление суумы на узлах
|
|||
|---|---|---|---|
|
#18+
backfireПросто Валентин постарался словами изложить вам MDX формулу, которая - встречается в каждом 5-м топике на тему остатков в этом форуме (поиск "Ascendants") - изложена Ткачуком в статье о рассчете остатков (см. линк в выше в одном из моих постов) Прошу прощения, тем более, что изложил с ошибками ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2005, 16:01 |
|
||
|
Вычисление суумы на узлах
|
|||
|---|---|---|---|
|
#18+
Пробую, расчитать дельты для 5600345 записей. Уже 40 минут считает. Использую SQL запрос приведенный в обсуждении. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2005, 17:56 |
|
||
|
Вычисление суумы на узлах
|
|||
|---|---|---|---|
|
#18+
Хочу поблагодарить господина Backfire за приведенную ссылку в данном обсуждении,действительно очень полезная информация. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2005, 12:16 |
|
||
|
Вычисление суумы на узлах
|
|||
|---|---|---|---|
|
#18+
Все работает, все считает замечательно. Но теперь появилась новая проблема: В таблице фактов 6 500 000 записей. Расчет дельт занял 2 часа 25 минут. Процессирования куба заняло 1 час 2 минуты. Размер куба вырос до 120 Мб. Можно ли ускорить время вычисления и уменьшить размер куба? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2005, 13:39 |
|
||
|
Вычисление суумы на узлах
|
|||
|---|---|---|---|
|
#18+
Позволю свои 5 коп. Разве 120М это размер?;) Я так понимаю что дельты необязательно расчитывать постоянно полностью. Эти 2.5 + 1 часа можно рассматривать как первоночальное наполнение. Ну а потом забахать механизм частичного обновления фактов. Ведт известно, что меняется. Куб побить по партициям(ну правда если EE). Затраченное время должно стремительно упасть и пару раз отжаться... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2005, 14:20 |
|
||
|
Вычисление суумы на узлах
|
|||
|---|---|---|---|
|
#18+
Чесно признаюсь, никогда не разбивал куб на партиции, если возможно обьяснить пожалуйста это сделайте или дайте ссылочку почитать как это сделать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2005, 18:56 |
|
||
|
Вычисление суумы на узлах
|
|||
|---|---|---|---|
|
#18+
АналитикЧесно признаюсь, никогда не разбивал куб на партиции, если возможно обьяснить пожалуйста это сделайте или дайте ссылочку почитать как это сделать. Вы для начала прочитайте фирменную доку к AS. Managing Partitions А потом, коль что не ясно Вам будет, задавайте вопросы здесь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2005, 19:02 |
|
||
|
|

start [/forum/topic.php?all=1&fid=49&tid=1871532]: |
0ms |
get settings: |
9ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
69ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
132ms |
get tp. blocked users: |
2ms |
| others: | 233ms |
| total: | 490ms |

| 0 / 0 |
