powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / MS AS: возможно ли? Если да - с чего начать :)
44 сообщений из 44, показаны все 2 страниц
MS AS: возможно ли? Если да - с чего начать :)
    #33035344
Recoilme
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не подскажете с какого боку подойти к решению такой задачи:
есть Год/Месяц/День, товар, кол(Qty) (+ и -)
Надо расчитать процент наличия товара на полке за месяц....

Т.е. типа расчитать остатки на каждый день в заданном измерении, например, месяц, выбрать количество записей когда рассчитанный Qty > 0 и соотнести с количеством дней в месяце...

Как бы так извратиться???? Очень не хочется на SQL|Axapta кодить.... точнее на аксапта уже закодена такая хрень, но работает очень долго хочется в кубике/рубике....
...
Рейтинг: 0 / 0
MS AS: возможно ли? Если да - с чего начать :)
    #33035525
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RecoilmeНе подскажете с какого боку подойти к решению такой задачи:
есть Год/Месяц/День, товар, кол(Qty) (+ и -)
Надо расчитать процент наличия товара на полке за месяц....

Т.е. типа расчитать остатки на каждый день в заданном измерении, например, месяц, выбрать количество записей когда рассчитанный Qty > 0 и соотнести с количеством дней в месяце...

Как бы так извратиться???? Очень не хочется на SQL|Axapta кодить.... точнее на аксапта уже закодена такая хрень, но работает очень долго хочется в кубике/рубике....

1. А что такое % наличия товара на полке? Как это можно интерпретировать? [Количество Дней когда остаток > 0]/[Количество Дней]*100?

2. Для начала построить куб остатков (а может быть и движений). На форуме это достаточно часто обсуждалось, так что рекомендую "поиск".
...
Рейтинг: 0 / 0
MS AS: возможно ли? Если да - с чего начать :)
    #33035640
Recoilme
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. В точку.
2. Да куб остатков построен, с какого боку подступиться к нему???

Есть мерзкий CM, ставший уже классическим :):
Код: plaintext
1.
2.
3.
Остаток на конец:
sum(Ascendants([Дата Физ].CurrentMember),
(sum([Дата Физ].FirstSibling :[Дата Физ].CurrentMember ,[Measures].[Текущий остаток]))-[Measures].[Текущий остаток])+ [Measures].[Текущий остаток]

Таким образом есть возможность в разрезе заданных измерений сложить сумму по количеству на "заданную" дату...

А я хочу на все даты!! в разрезе заданных измерений (товар/склад) и потом обработать полученные значения и вывести в виде меры????

Меня совсем прёт, или г-н backfire сейчас черкнет длинный непонятный текст который можно впендюрить в куб и поиметь счастье??? :)
...
Рейтинг: 0 / 0
MS AS: возможно ли? Если да - с чего начать :)
    #33036145
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Recoilme
Меня совсем прёт, или г-н backfire сейчас черкнет длинный непонятный текст который можно впендюрить в куб и поиметь счастье??? :)

Я не шаман, шаман сидит на другом берегу Большого Пруда.

Вы про кубик то подробнее расскажите. Что в таблице фактов? Голые движения? Начальные остатки тоже как движения? Или есть отдельно остатки на начала месяцев (дней, кварталов, лет - нужное подчеркнуть)

Да кстати формула, что вы привели, она не для получения остатков из движений, а у вас в ней остатки почему то используются.
...
Рейтинг: 0 / 0
MS AS: возможно ли? Если да - с чего начать :)
    #33036147
Dmitry Biryukov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Recoilme1. В точку.
2. Да куб остатков построен, с какого боку подступиться к нему???

Есть мерзкий CM, ставший уже классическим :):
Код: plaintext
1.
2.
3.
Остаток на конец:
sum(Ascendants([Дата Физ].CurrentMember),
(sum([Дата Физ].FirstSibling :[Дата Физ].CurrentMember ,[Measures].[Текущий остаток]))-[Measures].[Текущий остаток])+ [Measures].[Текущий остаток]

Таким образом есть возможность в разрезе заданных измерений сложить сумму по количеству на "заданную" дату...

А я хочу на все даты!! в разрезе заданных измерений (товар/склад) и потом обработать полученные значения и вывести в виде меры????

Меня совсем прёт, или г-н backfire сейчас черкнет длинный непонятный текст который можно впендюрить в куб и поиметь счастье??? :)
Вообще-то, остаток считается немного по другой формуле
Код: plaintext
SUM(PeriodsToDate([Дата Физ].Levels( 0 ),[Дата Физ].CurrentMember),Measures.Приход - Measures.Расход)
А после того, как есть этот СМ, можно создавать следующий:

Код: plaintext
SUM(Descendants([Дата Физ].CurrentMember,[Дата Физ].День), IIF(Measures.Остаток> 0 , 1 , 0 ))

это будет кол-во дней, когда товар был на складе. дальше уже делать нечего.
Ежели и это будет тормозить, то придётся на уровне хранилища расчитывать флажок в таблице - "есть товар или нет".
Тогда во всю мощь сможете задействовать агрегаты МС АС.
...
Рейтинг: 0 / 0
MS AS: возможно ли? Если да - с чего начать :)
    #33036282
Константин Лисянский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Надо расчитать процент наличия товара на полке за месяц....

Т.е. типа расчитать остатки на каждый день в заданном измерении, например, месяц, выбрать количество записей когда рассчитанный Qty > 0 и соотнести с количеством дней в месяце...

Смущает одно - как наличие товара на полке оценивается по остаткам?
Никого больше это не смущает?

Разве не может так быть - остаток есть, а товар на полке не лежит?

Если, например, товара в середине дня на полках не было, а под конец его выложили, то какой при этом будет этот самый процент?

Извините, что вопросом на вопрос :)


С уважением,
Константин Лисянский
http://lissianski.narod.ru
...
Рейтинг: 0 / 0
MS AS: возможно ли? Если да - с чего начать :)
    #33036474
Dmitry Biryukov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нууу... Константин, Вы требуете слишком высокой точности!
для этого к каждой полке надо поставить человека (или девайс), который бы следил в котором часу товар пропал с полки, и в котором часу его туда положили опять. а магазины-то ещё и работают по разному графику, кто только до обеда, кто только после, кто 10 часов в сутки, кто 24... всего не учтёшь, и если сэйлов устраивает такая точность, то почему бы и нет?

Кроме того, когда человек ходит по магазинам и переписывает остатки, то он должен потребовать выложить товар на полку если остаток > 0
...
Рейтинг: 0 / 0
MS AS: возможно ли? Если да - с чего начать :)
    #33036476
Jurii
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Константин:

Смущает одно - как наличие товара на полке оценивается по остаткам?
Никого больше это не смущает?


Как говорится, нет предела совершенству. Модель, в которой остатки товаров хранятся с детализацией до дня, обладает некоторой погрешностью. Чтобы ее улучшить, стоит иметь остатки по каждому товару для каждого места хранения для каждого часа суток, а может даже до минуты суток.

Интересно, пробовал ли кто-нибудь из посетителей форума вычислять остатки и смотреть их динамику по часам суток?
...
Рейтинг: 0 / 0
MS AS: возможно ли? Если да - с чего начать :)
    #33036505
Dmitry Biryukov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JuriiИнтересно, пробовал ли кто-нибудь из посетителей форума вычислять остатки и смотреть их динамику по часам суток?
а зачем это надо? разве что при торговле рыбой летом на улице без холодильника...

у нас, например, рекомендуют держать запас, равный полуторному остатку в днях
т.е. если продаётся в среднем 100 фишек в неделю (moving average кстати), и завоз происходит еженедельно, то запас в начале недели должен составлять 150 фишек.
а на время акций, рекомендуется увеличить запас в 2 и более раз.
т.е. правильный сток-менеджмент предполагает остутсвие остутствия товара

П.С. : наши товары имеют длительный срок хранения
...
Рейтинг: 0 / 0
MS AS: возможно ли? Если да - с чего начать :)
    #33036569
Recoilme
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Йёоууу!!! Спасибо Дмитрий! Шаман однако... Вроде работает декаданц Ваш хитрый... или ловкий??? Вобщем не важно... ща попробую на "не понарошечный кубик" натянуть...

По поводу кубика, а чем Вам не понравились эти милые CMочки??
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
Остаток на начало:
sum(Ascendants([Дата Физ].CurrentMember),
(sum([Дата Физ].FirstSibling :[Дата Физ].CurrentMember ,[Measures].[Текущий остаток]))-[Measures].[Текущий остаток])

Остаток на конец:
sum(Ascendants([Дата Физ].CurrentMember),
(sum([Дата Физ].FirstSibling :[Дата Физ].CurrentMember ,[Measures].[Текущий остаток]))-[Measures].[Текущий остаток])+ [Measures].[Текущий остаток]

Текущий остаток = Qty, который и как плюс и как минус. Типа "изменение остатка". Исходные остатки - как плюс. Вроде отсюда же формулы и тырил...

Периодс2Дате - не понравился. По быстродействию - не заметил разницы, но он по моему 0 возвращает, когда остатка нет, а выражения Выше - Null..

2 Константин: у нас розница. сеть. большая. нон фуд. детализация операций до дня. До чека детализации не нужно, товар до Владивостока 2 недели едет, так что изменениями остатков в середине дня мы пренебрегаем. Важно понять что магазин неделю пустой стоял по этому референсу или 1 день. А Вы я так понял сейчас мстр внедряете, в ритэйл?
...
Рейтинг: 0 / 0
MS AS: возможно ли? Если да - с чего начать :)
    #33036590
max_spbti
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мона и так, только при выборе нескольких элементов измерения [Дата] неработает

IIf(ISLeaf([Номенклатура]) and IsLeaf([Склад]),IIF(isleaf([Дата]),
IIF([Measures].[Остаток]>0,1,null),Sum([Дата].Children)),null)
...
Рейтинг: 0 / 0
MS AS: возможно ли? Если да - с чего начать :)
    #33036662
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
max_spbtiМона и так, только при выборе нескольких элементов измерения [Дата] неработает

IIf(ISLeaf([Номенклатура]) and IsLeaf([Склад]),IIF(isleaf([Дата]),
IIF([Measures].[Остаток]>0,1,null),Sum([Дата].Children)),null)

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

1. Должны ли выбранные периоды быть смежными или нет
2. Что такое начальный и конечный остаток.
3. Насколько просядет перформанс по сравнению с широкоупотребимыми формулами, если все таки такую формулку сможем создать.
...
Рейтинг: 0 / 0
MS AS: возможно ли? Если да - с чего начать :)
    #33036811
Dmitry Biryukov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
для смежных периодов, вроде бы уже придумали формулу
http://spaces.msn.com/members/cwebbbi/Blog/cns!1pi7ETChsJ1un_2s41jm9Iyg!113.entry

начальный остаток (если мы говорим о днях) это остаток на начало первого дня периода = остаток на конец дня, который идёт перед первым днём в периоде
аналогично конечный остаток это остаток на конец последнего дня периода = остаток на начало дня, который идёт первым после последнего дня в периоде

или на языке MDX (если выбран один элемент измерения Date)

начальный -
Код: plaintext
1.
2.
SUM(PeriodsToDate(Date.Levels( 0 ), 
   OpeningPeriod(Date.Levels(THE_LOWEST_LEVEL_NUMBER),Date.CurrentMember).PrevMember),
приход-расход)

конечный
Код: plaintext
1.
2.
SUM(PeriodsToDate(Date.Levels( 0 ),
   ClosingPeriod(Date.Levels(THE_LOWEST_LEVEL_NUMBER),Date.CurrentMember)),
приход-расход)

как в оборотке - начальный+приход-расход=конечный

третий вопрос - таки да. имхо, надо из приложения генерить MDX, в зависимости от multiselect или singleselect измерения data.

тогда при singleselect получим не меньшую производительность, а при multiselect, как говорится, сами же просили...
...
Рейтинг: 0 / 0
MS AS: возможно ли? Если да - с чего начать :)
    #33036823
Recoilme
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
backfire
давайте определимся:

1. Должны ли выбранные периоды быть смежными или нет
2. Что такое начальный и конечный остаток.
3. Насколько просядет перформанс по сравнению с широкоупотребимыми формулами, если все таки такую формулку сможем создать.

попробую сформулировать..

Дано:
Есть куб с:
- датами (год/месяц/день), магазинами, товарами
- изменениями остатков (приходы+/расходы-)

Решена задача вывода:
- остатков на начало выбранного периода (первый день в периоде)
- остатков на конец выбранноого периода (последний день в периоде)

Задача:
Расчитать возможные продажи товара при условии постоянного наличия товара

В рамках задачи предлагается решить следующие подзадачи:
1. Расчет количества дней, когда товар был в наличии (остаток на конец каждого дня > 0) в заданном периоде
2. Расчет общего количества дней в периоде
3. Расчет отношения "1" к "2" (коэффициент наличия товара)
4. Расчет произведения реально проданного количества на "3"

Допущения и ограничения:
1. Периоды могут быть только смежными если это необходимо
2. См. выше
3. Желательно чтоб перфоманс сел не более чем на 200% по сравнению с сажанием перфоманса при использовании функции периодс2дате :)
4. Инструменты MS AS + Excel 2002/2003

Бюджет проекта: 0 руб 00 коп.

Сроки: безумные
...
Рейтинг: 0 / 0
MS AS: возможно ли? Если да - с чего начать :)
    #33036960
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dmitry Biryukovдля смежных периодов, вроде бы уже придумали формулу
http://spaces.msn.com/members/cwebbbi/Blog/cns!1pi7ETChsJ1un_2s41jm9Iyg!113.entry

начальный остаток (если мы говорим о днях) это остаток на начало первого дня периода = остаток на конец дня, который идёт перед первым днём в периоде
аналогично конечный остаток это остаток на конец последнего дня периода = остаток на начало дня, который идёт первым после последнего дня в периоде

или на языке MDX (если выбран один элемент измерения Date)

начальный -
Код: plaintext
1.
2.
SUM(PeriodsToDate(Date.Levels( 0 ), 
   OpeningPeriod(Date.Levels(THE_LOWEST_LEVEL_NUMBER),Date.CurrentMember).PrevMember),
приход-расход)

конечный
Код: plaintext
1.
2.
SUM(PeriodsToDate(Date.Levels( 0 ),
   ClosingPeriod(Date.Levels(THE_LOWEST_LEVEL_NUMBER),Date.CurrentMember)),
приход-расход)

как в оборотке - начальный+приход-расход=конечный

третий вопрос - таки да. имхо, надо из приложения генерить MDX, в зависимости от multiselect или singleselect измерения data.

тогда при singleselect получим не меньшую производительность, а при multiselect, как говорится, сами же просили...

Дмитрий, простите за наивеый вопрос, правильно ли я понял, что
под Date.Levels(THE_LOWEST_LEVEL_NUMBER) вы имелли ввиду

Date.Levels.Item(Date.Levels.Count - 1) или THE_LOWEST_LEVEL_NUMBER недокументированная фича в MDX? (В чем я глубоко сомневаюсь)

з.ы. Позвольте полюбопытствовать. В свободное от МДХ время вы пишете на Басике какой то масти?

Кстати о птичках (PrevMember). Тут намедни в форуме был разговор в котором Моша признался о существовании бага в PrevMember, NextMember etc. Так что поосторожней с ними.
...
Рейтинг: 0 / 0
MS AS: возможно ли? Если да - с чего начать :)
    #33036988
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RecoilmeЗадача:
Расчитать возможные продажи товара при условии постоянного наличия товара

В рамках задачи предлагается решить следующие подзадачи:
1. Расчет количества дней, когда товар был в наличии (остаток на конец каждого дня > 0) в заданном периоде
2. Расчет общего количества дней в периоде
3. Расчет отношения "1" к "2" (коэффициент наличия товара)
4. Расчет произведения реально проданного количества на "3"

Допущения и ограничения:
1. Периоды могут быть только смежными если это необходимо
2. См. выше
3. Желательно чтоб перфоманс сел не более чем на 200% по сравнению с сажанием перфоманса при использовании функции периодс2дате :)
4. Инструменты MS AS + Excel 2002/2003

Бюджет проекта: 0 руб 00 коп.

Сроки: безумные

А в какой прикладной области вы решаете задачу?
Опт, Розница?
Характер товаров?
Какова конечная цель?
Просто посмотреть на возможные продажи и облизнуться или использовать эти данные для управления закупками во избежание OOS (Out-of-Stock)?

Я в свое время решал эту задачу для оптового торговца продуктами питания (во времена когда MS AS еще не существовал и все решеник было построено в MS SQL тогда 6.5). И по началу считал именно так как и вы (коэффициент наличия товара). Но практика показала, что п.4 выдает завышенные результаты ибо не учитывает того эффекта, что в первые дни появления товара после нескольких дней OOS, дневные продажи существенно выше, чем если бы товар был все время на складе (эффект "выбросили дефицит"). Если доля постоянных клиентов высока и они знают, когда будет товар и покупают его тогда когда он есть, ибо знают когда он появится, то ваша теория "возможных продаж" валится как карточный домик. Ваша теория хороша для розницы (noname customer or relationless customer), но и то в известных пределах.

Если же абстрагироваться от вопросов применительности вашего метода и спуститься к постным MDX проблемам, то перформанс видится слабым и болезненным, особенно если в качестве FrontEnd выступает Excel с его "высокоинтеллектуалтным" генератором MDX запросов.
Я бы взял уж како нибудь FrontEnd, где можно custom mdx отрабытывать. Тот же Reporting Services может вам очень помочь (конечным юзерам MDX Sample Applicatioin ведь не дашь)
...
Рейтинг: 0 / 0
MS AS: возможно ли? Если да - с чего начать :)
    #33037044
Dmitry Biryukov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
backfireДмитрий, простите за наивеый вопрос, правильно ли я понял, что
под Date.Levels(THE_LOWEST_LEVEL_NUMBER) вы имелли ввиду

Date.Levels.Item(Date.Levels.Count - 1) или THE_LOWEST_LEVEL_NUMBER недокументированная фича в MDX? (В чем я глубоко сомневаюсь)

з.ы. Позвольте полюбопытствовать. В свободное от МДХ время вы пишете на Басике какой то масти?

Кстати о птичках (PrevMember). Тут намедни в форуме был разговор в котором Моша признался о существовании бага в PrevMember, NextMember etc. Так что поосторожней с ними.
Вы как всегда правы.
Про PrevMember, NextMember буду иметь в виду.
...
Рейтинг: 0 / 0
MS AS: возможно ли? Если да - с чего начать :)
    #33037067
Recoilme
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
backfire[Если доля постоянных клиентов высока и они знают, когда будет товар и покупают его тогда когда он есть, ибо знают когда он появится, то ваша теория "возможных продаж" валится как карточный домик. Ваша теория хороша для розницы (noname customer or relationless customer), но и то в известных пределах.

Если же абстрагироваться от вопросов применительности вашего метода и спуститься к постным MDX проблемам, то перформанс видится слабым и болезненным, особенно если в качестве FrontEnd выступает Excel с его "высокоинтеллектуалтным" генератором MDX запросов.
Я бы взял уж како нибудь FrontEnd, где можно custom mdx отрабытывать. Тот же Reporting Services может вам очень помочь (конечным юзерам MDX Sample Applicatioin ведь не дашь)

1. Розница. Для сводного планирования. Min|Max и СЗ считаю.

2. И по перфомансу угадали тоже :)

Эксель висел час, скушал гиг памяти при развороте 20000 товаров/1 магазин - снял задачу. Выручил www.pivotview.com за что второму Дмитрию отдельное спасибо. 22 мин 300 метров. Ноу коддинг. Зарядил на ночь в терминале по 160 магазинам, если отработает часа за 4 хотя бы и смогет в хтмл выплюнуть - перфоманс меня удовлетворит.

Для сравнения сейчас в аксапте 10 часов считаются остатки + блокировки прут + выгрузка в mdb + 10 часов в акцессе расчет делается. А тут нажал кнопку пошел спать, с утра поимел...

Жалко что чудесная формула Дмитрия возвращает ноль, а не нулл...

Можно ещё вопрос?? Как половчей посчитать количество дней в выбраном периоде (если несколько элементов выбрано)?
...
Рейтинг: 0 / 0
MS AS: возможно ли? Если да - с чего начать :)
    #33037074
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что там на pivotview.com?

А то у меня

Forbidden
You don't have permission to access / on this server.


--------------------------------------------------------------------------------

Apache/1.3.23 Server at www.pivotview.com Port 80
...
Рейтинг: 0 / 0
MS AS: возможно ли? Если да - с чего начать :)
    #33037127
Dmitry Biryukov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а это лучше спросить у Дмитрия Улитина
"Dmitry Ulitin"
хотя, Вам могу выслать по почте этого чудесного клиента, ещё с тех времён, когда он не требовал регистрации.
...
Рейтинг: 0 / 0
MS AS: возможно ли? Если да - с чего начать :)
    #33037135
Dmitry Biryukov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RecoilmeЖалко что чудесная формула Дмитрия возвращает ноль, а не нулл...Это можно настроить с помщью non empty behaviour или через банальный IIF

RecoilmeМожно ещё вопрос?? Как половчей посчитать количество дней в выбраном периоде (если несколько элементов выбрано)?

Код: plaintext
count(crossjoin({[физическая мера]},descendants(Date.CurrentMember,Date.День)),excludeempty)

либо к каждому уровню измерения даты добавить свойство кол-во дней.
(подразумевается, что это измерение строится на отдельной таблице)
...
Рейтинг: 0 / 0
MS AS: возможно ли? Если да - с чего начать :)
    #33037178
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dmitry Biryukov RecoilmeЖалко что чудесная формула Дмитрия возвращает ноль, а не нулл...Это можно настроить с помщью non empty behaviour или через банальный IIF

RecoilmeМожно ещё вопрос?? Как половчей посчитать количество дней в выбраном периоде (если несколько элементов выбрано)?

Код: plaintext
count(crossjoin({[физическая мера]},descendants(Date.CurrentMember,Date.День)),excludeempty)

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

1. с помщью non empty behaviour вы вряд ли добъетесь чего либо толкового ибо non empty behaviour ведет себя как хочет.

2. Ваша формула вернет количество дней когда были факты в кубе, а не количество дней. Для этого NECJ гораздо скорострельнее. А вот количество дней под членом измерения я бы считал просто как

Код: plaintext
descendants(Date.CurrentMember,Date.День))

Но при multiple select не катит. Там надо в MDX иметь set из выбранных членов измерения, а не СM от них. Из CM сет не выудишь. И если CM делается во FrontEnd, то сушите весла.
...
Рейтинг: 0 / 0
MS AS: возможно ли? Если да - с чего начать :)
    #33037194
Dmitry Biryukov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот именно, что моя формула считает правильно даже при мультиселекте - проверено.

" формула вернет количество дней когда были факты в кубе, а не количество дней " вот это конечно верно.
...
Рейтинг: 0 / 0
MS AS: возможно ли? Если да - с чего начать :)
    #33037223
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dmitry Biryukovвот именно, что моя формула считает правильно даже при мультиселекте - проверено.

" формула вернет количество дней когда были факты в кубе, а не количество дней " вот это конечно верно.

Если Вас не затруднит, пожалуйста приведите пример запроса желательно на FoodMart, где она считает правильно на MultiSelect
...
Рейтинг: 0 / 0
MS AS: возможно ли? Если да - с чего начать :)
    #33037518
ShIgor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
backfireНо при multiple select не катит
Катит - проверено на всех своих базах - использую где только возможно и во всяких срезах и мултиселектах... и вообще все вычисления у меня вокруг да около этого подсчета - на "неправильность" за 2 года пока никто не жаловался, разве что на скорость и то иногда...
...
Рейтинг: 0 / 0
MS AS: возможно ли? Если да - с чего начать :)
    #33037634
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShIgor backfireНо при multiple select не катит
Катит - проверено на всех своих базах - использую где только возможно и во всяких срезах и мултиселектах... и вообще все вычисления у меня вокруг да около этого подсчета - на "неправильность" за 2 года пока никто не жаловался, разве что на скорость и то иногда...

приведите пожалуйста простейший запрос, в котором участвует и "MultiSelect" и эта формула для count.
...
Рейтинг: 0 / 0
MS AS: возможно ли? Если да - с чего начать :)
    #33037769
Dmitry Biryukov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
with
member measures.[Products Count CM] as '
count(crossjoin(
   {[Measures].[Unit Sales]},descendants(Product.CurrentMember,Product.[Product Name])
),excludeempty)'

SET Set1 AS 
'HIERARCHIZE({
[Product].[All Products],
[Product].[All Products].[Drink], 
[Product].[All Products].[Food],
[Product].[All Products].[Drink].[Alcoholic Beverages],
[Product].[All Products].[Food].[Baked Goods]
})'
member [Store Type].agg1 as 'aggregate({[Store Type].[Deluxe Supermarket],
                                                          [Store Type].[Gourmet Supermarket]})'
SELECT 
	Set1 ON  1 , 
	{ [Product Id], [Products Count CM]} ON  0 
	FROM [Sales]
where (agg1)
...
Рейтинг: 0 / 0
MS AS: возможно ли? Если да - с чего начать :)
    #33037901
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dmitry Biryukov
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
with
member measures.[Products Count CM] as '
count(crossjoin(
   {[Measures].[Unit Sales]},descendants(Product.CurrentMember,Product.[Product Name])
),excludeempty)'

SET Set1 AS 
'HIERARCHIZE({
[Product].[All Products],
[Product].[All Products].[Drink], 
[Product].[All Products].[Food],
[Product].[All Products].[Drink].[Alcoholic Beverages],
[Product].[All Products].[Food].[Baked Goods]
})'
member [Store Type].agg1 as 'aggregate({[Store Type].[Deluxe Supermarket],
                                                          [Store Type].[Gourmet Supermarket]})'
SELECT 
	Set1 ON  1 , 
	{ [Product Id], [Products Count CM]} ON  0 
	FROM [Sales]
where (agg1)


Это не то что я имел ввиду. У вас count идет по продуктам, а multiselect по [Store Type]. А вот если и то и другое по одному измерению.
...
Рейтинг: 0 / 0
MS AS: возможно ли? Если да - с чего начать :)
    #33037955
Dmitry Biryukov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
a Set1 это не то, что Вам нужно?

если я правильно понимаю куда Вы клоните, то получить кол-во членов в функции Аggregate как минимум непросто. Хотя может пройдут какие-то шаманства с StrToSet ? А так, если мультиселект выложить на какую-то ось (типа Set1 в моём примере) - то формула работает.
...
Рейтинг: 0 / 0
MS AS: возможно ли? Если да - с чего начать :)
    #33038019
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
А так, если мультиселект выложить на какую-то ось (типа Set1 в моём примере) - то формула работает.

На Where она не катит.
...
Рейтинг: 0 / 0
MS AS: возможно ли? Если да - с чего начать :)
    #33038755
ShIgor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну вот мой вариант, который катит во WHERE:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
WITH 
MEMBER [Measures].[Тчк] As 'Count(Descendants([РегионГородТТ].CurrentMember, [РегионГородТТ].[Точка]) * {Measures.[Фактов]}, ExcludeEmpty)'
MEMBER [РегионГородТТ].[РегионГородТТВсе].[ДваГорода] AS ' SUM( { [РегионГородТТ].[Регион].&[26].&[28], [РегионГородТТ].[Регион].&[15].&[2] } ) ', SOLVE_ORDER =  2  
SELECT 
{ DESCENDANTS( [Визит].[ГодКварталМесяц].[Год].&[ 2005 ], [Визит].[ГодКварталМесяц].[Месяц] ) } ON COLUMNS , 
{ [БрэндП].[БрэндПВсе] } ON ROWS
FROM [КУБАудит] WHERE ( [Measures].[Тчк], [РегионГородТТ].[РегионГородТТВсе].[ДваГорода] )

или так, из WHERE перенесем на строки
Код: plaintext
1.
2.
3.
4.
5.
6.
WITH 
MEMBER [Measures].[Тчк] As 'Count(Descendants([РегионГородТТ].CurrentMember, [РегионГородТТ].[Точка]) * {Measures.[Фактов]}, ExcludeEmpty)'
MEMBER [РегионГородТТ].[РегионГородТТВсе].[ДваГорода] AS ' SUM( { [РегионГородТТ].[Регион].&[26].&[28], [РегионГородТТ].[Регион].&[15].&[2] } ) ', SOLVE_ORDER = 2 
SELECT 
{ DESCENDANTS( [Визит].[ГодКварталМесяц].[Год].&[ 2005 ], [Визит].[ГодКварталМесяц].[Месяц] ) } ON COLUMNS , 
{ [РегионГородТТ].[РегионГородТТВсе].[ДваГорода] } ON ROWS  
FROM [КУБАудит] WHERE ( [Measures].[Тчк]  )
...
Рейтинг: 0 / 0
MS AS: возможно ли? Если да - с чего начать :)
    #33038860
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот вы и попались.

SUM да еще SOLVE_ORDER = 2.

А если у вас СM типа
Measures.[Profit %] = ([Measures].[Sales] - [Measures].[Costs])/Sales
, т.е. явно не summable.

SUM с SOLVE_ORDER = 2 тупо сложит проценты :-)
...
Рейтинг: 0 / 0
MS AS: возможно ли? Если да - с чего начать :)
    #33039718
ShIgor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
backfireВот вы и попались.
А по-моему, Вы сами себя за хвост сватили.
Сначала просили пример, где CM с формулой COUNT может быть использован с измерением одновременно, либо на осях, либо во WHERE, да еще и с мултиселектом (то бишь "катит" в разных случаях).
А теперь подкидываете СМ, в котором не просто нет Count, но и речи о котором раньше не было.
Мне кажется, что либо Вы взялись проверять наши познания в MDX, либо, согласно женской логике, сознательно уводите разговор в сторону дабы не остаться уязвленным.
...
Рейтинг: 0 / 0
MS AS: возможно ли? Если да - с чего начать :)
    #33040589
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уважаемый Shlgor, я не собираюсь проверять ваше знание MDX, и не хочу увести в сторону, просто я пытаюсь средсвами AS 2000 решить проблемы Multiselect member, буди то на осях, будь то в WHERE. Как я и предполагал, универсального подхода в построении CM для multiselect нет, всегда надо подыгрывать с SOLVE_ORDER в зависимости от наличия и характера других CM.
...
Рейтинг: 0 / 0
MS AS: возможно ли? Если да - с чего начать :)
    #33040809
ShIgor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ваш вопрос?
backfireприведите пожалуйста простейший запрос, в котором участвует и "MultiSelect" и эта формула для count.
зачем тогда вот этот огород?
backfireВот вы и попались.
SUM да еще SOLVE_ORDER = 2.
А если у вас СM типа
Measures.[Profit %] = ([Measures].[Sales] - [Measures].[Costs])/Sales
, т.е. явно не summable.
SUM с SOLVE_ORDER = 2 тупо сложит проценты :-)
конкретно говорим о count, а не о том, что
backfireуниверсального подхода в построении CM для multiselect нет
универсльного решения любой задачи ведь тоже нет!
...
Рейтинг: 0 / 0
MS AS: возможно ли? Если да - с чего начать :)
    #33041554
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А огород то в вашем утверждении о универсальности и правильности

ShlgorКатит - проверено на всех своих базах - использую где только возможно и во всяких срезах и мултиселектах... и вообще все вычисления у меня вокруг да около этого подсчета - на "неправильность" за 2 года пока никто не жаловался, разве что на скорость и то иногда...
...
Рейтинг: 0 / 0
MS AS: возможно ли? Если да - с чего начать :)
    #33041649
Jurii
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 ShIgor:

универсального подхода в построении CM для multiselect нет
универсльного решения любой задачи ведь тоже нет!


Я думаю в MS AS универсальное решение по созданию вычисляемых мемберов при мультиселекте рано или поздно появится

<Дальше была реклама Cognos.
Модератор>
...
Рейтинг: 0 / 0
MS AS: возможно ли? Если да - с чего начать :)
    #33041771
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JuriiЯ думаю в MS AS универсальное решение по созданию вычисляемых мемберов при мультиселекте рано или поздно появится

Почему появится? Есть уже в AS2005.
...
Рейтинг: 0 / 0
MS AS: возможно ли? Если да - с чего начать :)
    #33041811
Mosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Универсального решения для мултиселекта под произвольный calculated member не может существовать в принципе, причем неважно используется MS AS или любой другой продукт. Это потому что можно построить примеры, где семантика просто не определена. Например, допустим у нас есть CM который считает нарастающий итог по годам. В MDX это будет записано так:

Код: plaintext
CREATE MEMBER Year.RSUM AS 'SUM(Year.MEMBERS(0):Year.CurrentMember)'

А теперь пользователь сделал мултиселект по Year.[1998] и Year.[2003]. Что будет являться правильным результатом ? Правильный результат не определен. Конечно, для данного конкретного случая можно определить что именно должно произойти и даже подправить формулу чтобы она это делала, но идея в том что не существует общего решения.

Моша
----------------------------------------------------
This posting is provided "AS IS" with no warranties, and confers no rights
...
Рейтинг: 0 / 0
MS AS: возможно ли? Если да - с чего начать :)
    #33041893
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MoshaУниверсального решения для мултиселекта под произвольный calculated member не может существовать в принципе, причем неважно используется MS AS или любой другой продукт. Это потому что можно построить примеры, где семантика просто не определена. Например, допустим у нас есть CM который считает нарастающий итог по годам. В MDX это будет записано так:

Код: plaintext
CREATE MEMBER Year.RSUM AS 'SUM(Year.MEMBERS(0):Year.CurrentMember)'

А теперь пользователь сделал мултиселект по Year.[1998] и Year.[2003]. Что будет являться правильным результатом ? Правильный результат не определен. Конечно, для данного конкретного случая можно определить что именно должно произойти и даже подправить формулу чтобы она это делала, но идея в том что не существует общего решения.

Моша
----------------------------------------------------
This posting is provided "AS IS" with no warranties, and confers no rights

C одной стороны я с вами согласен. Но меня мучает вопрос, а чем же так принципиально семантически отличатся ad-hoc multiselect n-меберов от уже имеющегося в структуре иерархии родительского члена n-меберов? (предчествую, что объяснения для 2k и 2k5 будуь сильно отличаться)
...
Рейтинг: 0 / 0
MS AS: возможно ли? Если да - с чего начать :)
    #33041922
Mosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
backfireНо меня мучает вопрос, а чем же так принципиально семантически отличатся ad-hoc multiselect n-меберов от уже имеющегося в структуре иерархии родительского члена n-меберов?
А вот этот вопрос я не понимаю. Языковой барьер ?

Моша
----------------------------------------------------
This posting is provided "AS IS" with no warranties, and confers no rights
...
Рейтинг: 0 / 0
MS AS: возможно ли? Если да - с чего начать :)
    #33042016
ShIgor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
backfireА огород то в вашем утверждении о универсальности и правильности
Shlgor
Катит - проверено на всех своих базах - использую где только возможно и во всяких срезах и мултиселектах... и вообще все вычисления у меня вокруг да около этого подсчета - на "неправильность" за 2 года пока никто не жаловался, разве что на скорость и то иногда...



Иль я совсем свихнулся, иль у нас действительно языковой барьер.
ОГОРОД ОБ УНИВЕРСАЛЬНОСТИ И ПРАВИЛЬНОСТИ ТОЛЬКО ПО ОТНОШЕНИЮ COUNT
уж скока это можно повторять!!!! Пример которого кстати Вы же и просили, а не Универсального CM! Зачем выдергивать фразу из контекста и пытаться найти в ней нестыковки с другими темами?
Лучше приведите тогда Вы пример где подобного рода Count не "катит"!
...
Рейтинг: 0 / 0
MS AS: возможно ли? Если да - с чего начать :)
    #33042339
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
To Schlgor

Хорошо, закончим наш теологический диспут. Я действительно немного переиграл, ведт изначально речь шла только о count СM.


Моше

Попытаюсь еще раз изложить мою мысль.

Есть измерение A , уровень N , на нем выбраны n членов и для них построен CM m по какойто формуле [AGGREGATE|SUM|...].
Предположим, что на уровне N-1 существует член M , и M.children = {n выбранных членов }
Теперь собственно мой вопрос. В каких случаях значания мер в том числе и calculated могут и должны быть равны или не равны для M и m
...
Рейтинг: 0 / 0
MS AS: возможно ли? Если да - с чего начать :)
    #33043688
Mosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
backfireЕсть измерение A, уровень N, на нем выбраны n членов и для них построен CM m по какойто формуле [AGGREGATE|SUM|...].
Предположим, что на уровне N-1 существует член M, и M.children = {n выбранных членов}
Теперь собственно мой вопрос. В каких случаях значания мер в том числе и calculated могут и должны быть равны или не равны для M и m
Случаев когда сумма сыновей не равна значению отца может быть много. Собственно в любом неаддитивном кубе это будет происходить. Достаточно иметь вычисление которое покрывает уровень N-1 и это будет неаддитивно. Другой пример - когда в срезе по другому измерению еще один CM с неаддитивной формулой. и т.д.

Моша
----------------------------------------------------
This posting is provided "AS IS" with no warranties, and confers no rights
...
Рейтинг: 0 / 0
44 сообщений из 44, показаны все 2 страниц
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / MS AS: возможно ли? Если да - с чего начать :)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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