powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / MS AS: возможно ли? Если да - с чего начать :)
19 сообщений из 44, страница 2 из 2
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
19 сообщений из 44, страница 2 из 2
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / MS AS: возможно ли? Если да - с чего начать :)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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