Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / MS AS вычесляю период начала и конец. / 22 сообщений из 22, страница 1 из 1
01.03.2005, 15:27
    #32939023
OLAPMASTER
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MS AS вычесляю период начала и конец.
Наверняка кто то сталкивался с проблемой что в одном кубе нужно отобразить продажи за какой то произвольный период и остаток на начала этого периода и конец.
Так вот у меня есть решение.

Нада создать дату не как иерархию а с одним уровнем где будут все дни.
И ее не трогать сделать visible - false.

Далее показатель 1

Остаток на начало периода
SUM(HEAD(Filter(CrossJoin({[Measures].[Sales Val]},Descendants([Salesdate 1].currentmember,[Salesdate 1].levels(1))), NOT IsEmpty([Salesdate 1].currentmember)),1))

Сдесь очень долго мучился с NonEmptyCrossJoin ну не как не хотел он мне выдавать не пустых, пришлось фильтр надеть на него.


Остаток на конец периода
SUM(HEAD(Filter(CrossJoin({[Measures].[Sales Val]},Descendants([Salesdate 1].currentmember,[Salesdate 1].levels(1))), NOT IsEmpty([Salesdate 1].currentmember)),
count(Filter(CrossJoin({[Measures].[Sales Val]},Descendants([Salesdate 1].currentmember,[Salesdate 1].levels(1))), NOT IsEmpty([Salesdate 1].currentmember))))) -
SUM(HEAD(Filter(CrossJoin({[Measures].[Sales Val]},Descendants([Salesdate 1].currentmember,[Salesdate 1].levels(1))), NOT IsEmpty([Salesdate 1].currentmember)),
count(Filter(CrossJoin({[Measures].[Sales Val]},Descendants([Salesdate 1].currentmember,[Salesdate 1].levels(1))), NOT IsEmpty([Salesdate 1].currentmember)))-1))

Сдесь все тоже самое только от НЕAD отнимаю предидущую сумму.

Пробовал выделять произвольные периоды(мультиселект) и все работает.

Для этот помогла формула для вычесления

сount(crossjoin({population},descendants(city.currentmember,city.[city name])),excludeempty)

Автора уже не помню если он зайдет ему огромное спасибо за помошь!!

Есть возможность оптимизировать??
...
Рейтинг: 0 / 0
01.03.2005, 16:00
    #32939137
Dmitry Biryukov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MS AS вычесляю период начала и конец.
OLAPMASTERСдесь очень долго мучился с NonEmptyCrossJoin ну не как не хотел он мне выдавать не пустых, пришлось фильтр надеть на него.

Для этот помогла формула для вычесления
сount(crossjoin({population},descendants(city.currentmember,city.[city name])),excludeempty)
Автора уже не помню если он зайдет ему огромное спасибо за помошь!!
Есть возможность оптимизировать??

Формула моя, но г-н backfire советовал использовать
NonEmptyCrossJoin({population},descendants(city.currentmember,city.[city name])).Count
Всё-таки Filter+CrossJoin едят много ресурсов.

При мультиселкте бывают "дыры"? т.е. выбираются ли только январь и апрель или всегда январь,февраль,март,апрель?

Кроме того, какой глубокий смысл в SUM(HEAD( ... ),1)) ?

Для оптимизации, можно повторно используемые множества засунуть в named sets, аналогично Count(...) можно засунуть в Calc. Member
...
Рейтинг: 0 / 0
01.03.2005, 16:56
    #32939342
OLAPMASTER
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MS AS вычесляю период начала и конец.
Dmitry Biryukov OLAPMASTERСдесь очень долго мучился с NonEmptyCrossJoin ну не как не хотел он мне выдавать не пустых, пришлось фильтр надеть на него.

Для этот помогла формула для вычесления
сount(crossjoin({population},descendants(city.currentmember,city.[city name])),excludeempty)
Автора уже не помню если он зайдет ему огромное спасибо за помошь!!
Есть возможность оптимизировать??

Формула моя, но г-н backfire советовал использовать
NonEmptyCrossJoin({population},descendants(city.currentmember,city.[city name])).Count
Всё-таки Filter+CrossJoin едят много ресурсов.

При мультиселкте бывают "дыры"? т.е. выбираются ли только январь и апрель или всегда январь,февраль,март,апрель?

Кроме того, какой глубокий смысл в SUM(HEAD( ... ),1)) ?

Для оптимизации, можно повторно используемые множества засунуть в named sets, аналогично Count(...) можно засунуть в Calc. Member


Дырок для них я не видел, что хочешь выбирай он тебе даст 1 и последнего в множестве.
NonEmptyCrossJoin неработает вернул мне все множество, поэтому и filter поставил.
А вот name Set это хорошо, попробую.
...
Рейтинг: 0 / 0
01.03.2005, 17:16
    #32939407
Dmitry Biryukov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MS AS вычесляю период начала и конец.
OLAPMASTER Dmitry BiryukovПри мультиселкте бывают "дыры"? т.е. выбираются ли только январь и апрель или всегда январь,февраль,март,апрель?

Кроме того, какой глубокий смысл в SUM(HEAD(( ... ),1)) ?
Дырок для них я не видел, что хочешь выбирай он тебе даст 1 и последнего в множестве.

Я имел в виду: есть ли у пользователей причины выбирать периоды "не подряд"? например отдельно январь и отдельно апрель без февраля и марта?
(есть более быстрый алгоритм в случае "сплошных" периодов)

Вместо SUM(HEAD(( ... ),1)) можно просто писать просто HEAD(( ... ),1)
...
Рейтинг: 0 / 0
01.03.2005, 17:32
    #32939452
OLAPMASTER
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MS AS вычесляю период начала и конец.
Dmitry Biryukov OLAPMASTER Dmitry BiryukovПри мультиселкте бывают "дыры"? т.е. выбираются ли только январь и апрель или всегда январь,февраль,март,апрель?

Кроме того, какой глубокий смысл в SUM(HEAD(( ... ),1)) ?
Дырок для них я не видел, что хочешь выбирай он тебе даст 1 и последнего в множестве.

Я имел в виду: есть ли у пользователей причины выбирать периоды "не подряд"? например отдельно январь и отдельно апрель без февраля и марта?
(есть более быстрый алгоритм в случае "сплошных" периодов)

Вместо SUM(HEAD(( ... ),1)) можно просто писать просто HEAD(( ... ),1)

Получаеться не гибкое решение, так как я как раз расчитовал на не сплощные периоды, на вот например исключая выходные дни, или просто по выходным дням. Поэтому я и сделал Sum(HEAD((...)1)).
...
Рейтинг: 0 / 0
02.03.2005, 18:37
    #32942222
OLAPMASTER
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MS AS вычесляю период начала и конец.
Остаток на конец периода
SUM(TAIL(Filter(CrossJoin({[Measures].[Sales Val]},Descendants([Salesdate 1].currentmember,[Salesdate 1].levels(1))), NOT IsEmpty([Salesdate 1].currentmember)),1))

Так оптимальнее вот и сам все оптимизировал!!!
...
Рейтинг: 0 / 0
08.02.2006, 19:27
    #33532516
Владимир Штепа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MS AS вычесляю период начала и конец.
Что в ваше формуле [Measures].[Sales Val]? Движение или подневной остаток?
...
Рейтинг: 0 / 0
09.02.2006, 10:25
    #33533167
OLAPMASTER
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MS AS вычесляю период начала и конец.
backfireЧто в ваше формуле [Measures].[Sales Val]? Движение или подневной остаток?
Привет.
[Sales Val] - остаток на каждый день. Поэтому фактов на куб подавалось очень много, но если его разбить на партиции то все очень даже хорошо.
...
Рейтинг: 0 / 0
09.02.2006, 10:29
    #33533180
Аналитик
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MS AS вычесляю период начала и конец.
А измерение времени включает только дни?
...
Рейтинг: 0 / 0
09.02.2006, 11:42
    #33533506
Владимир Штепа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MS AS вычесляю период начала и конец.
OLAPMASTER backfireЧто в ваше формуле [Measures].[Sales Val]? Движение или подневной остаток?
Привет.
[Sales Val] - остаток на каждый день. Поэтому фактов на куб подавалось очень много, но если его разбить на партиции то все очень даже хорошо.

Если товар A на начало периода P не был в системе, и только в середине периода появилась запись с его остатком, ваша формула для остатка на начало периода вернет этот остаток, а это не 0.
...
Рейтинг: 0 / 0
09.02.2006, 15:55
    #33534718
Аналитик
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MS AS вычесляю период начала и конец.
Ну так все таки какие Levels включает рабочее измерение времени?
...
Рейтинг: 0 / 0
10.02.2006, 05:33
    #33535815
Владимир Штепа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MS AS вычесляю период начала и конец.
на сколько я понял , только дни и All level
...
Рейтинг: 0 / 0
10.02.2006, 09:54
    #33536108
OLAPMASTER
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MS AS вычесляю период начала и конец.
backfireна сколько я понял , только дни и All level
Привет.
Не проверял такого. Помоему она не вернет его остаток.
Что касается дней. Это виртуальное измерение и там дни лежат все на одном уровне. Это только дни. Хотя... нет не вернет она его остаток она напишет там 0. Вы мажете сами это проверить.
...
Рейтинг: 0 / 0
10.02.2006, 10:08
    #33536160
Аналитик
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MS AS вычесляю период начала и конец.
А какже месяцы, недели, кварталы, годы?
...
Рейтинг: 0 / 0
13.02.2006, 13:23
    #33540694
OLAPMASTER
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MS AS вычесляю период начала и конец.
АналитикА какже месяцы, недели, кварталы, годы?
Все это живет в номральном измерение под название Дата. Там есть все иерархие которые нужны для отчета. Вот только уровень "день" в этой иерархии имеет свойство "день" типа "01.01.2001" это дата без времени. И на базе этого делаеться виртуальное измерение all_date и ему ставиться hide. Просто то если сделать иерархию то формула не работает если выбрать разные уровни. Непонимаю почему но это факт и это подметил backfire
как то.
...
Рейтинг: 0 / 0
13.02.2006, 14:04
    #33540886
Аналитик
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MS AS вычесляю период начала и конец.
Если я выбираю месяц, то в формулу значения подставляются из виртуального[Salesdate 1] или же из номрального измерения под названием Дата?
...
Рейтинг: 0 / 0
14.02.2006, 09:56
    #33542633
OLAPMASTER
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MS AS вычесляю период начала и конец.
АналитикЕсли я выбираю месяц, то в формулу значения подставляются из виртуального[Salesdate 1] или же из номрального измерения под названием Дата?
Все значения которые ты вибираеш в измерении Дата, для расчета формулы беруться из виртуального измерения.
...
Рейтинг: 0 / 0
14.02.2006, 10:46
    #33542787
Аналитик
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MS AS вычесляю период начала и конец.
Т.е. [Salesdate 1] это виртуальное измерение?
Можно рассмотреть на примере?
Я выбрал месяц Октябрь, что подставится в формулу?
...
Рейтинг: 0 / 0
14.02.2006, 10:54
    #33542819
OLAPMASTER
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MS AS вычесляю период начала и конец.
АналитикТ.е. [Salesdate 1] это виртуальное измерение?
Можно рассмотреть на примере?
Я выбрал месяц Октябрь, что подставится в формулу?
В формуле будут все дни октябра. Что бы не мучать себя, сделай такое измерение и просто в excel кинь их друг на друга. И все увидишь.
...
Рейтинг: 0 / 0
14.02.2006, 11:12
    #33542883
Аналитик
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MS AS вычесляю период начала и конец.
Мне на самом деле понятен смысл формулы. Я уже решал такую задачу используя подобную формулу. И подставлял я значения напрямую из измерения времени, в котором были Годы-месяцы-дни.

Мне же непонятно использование виртуального измерения, если мы его непосредственно используем в формуле, то там всего лишь один уровень, тогда зачем нам descendants.

Прошу прощения за свою навязчивость, просто хочу разобраться.
...
Рейтинг: 0 / 0
14.02.2006, 11:17
    #33542902
OLAPMASTER
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MS AS вычесляю период начала и конец.
АналитикМне на самом деле понятен смысл формулы. Я уже решал такую задачу используя подобную формулу. И подставлял я значения напрямую из измерения времени, в котором были Годы-месяцы-дни.

Мне же непонятно использование виртуального измерения, если мы его непосредственно используем в формуле, то там всего лишь один уровень, тогда зачем нам descendants.

Прошу прощения за свою навязчивость, просто хочу разобраться.
Чесно сказать, я сам не разбирал что и как.
Сделай и проверь следующее:
Напиши две подобные формулы в одной по нормальной иерархии времени а дургую по виртуальным дням как я.
Возьми и выдели периоды из раных годов просто декабрь 2005 и январь 2006
и ты увидишь что по дням все будет работать а с иерархией нет. Вот по этому я и использую формулу.
...
Рейтинг: 0 / 0
14.02.2006, 11:25
    #33542924
Аналитик
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MS AS вычесляю период начала и конец.
Спасибо за ответ, буду пробовать.
...
Рейтинг: 0 / 0
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / MS AS вычесляю период начала и конец. / 22 сообщений из 22, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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