powered by simpleCommunicator - 2.0.44     © 2025 Programmizd 02
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / MDX пересечение продаж
7 сообщений из 7, страница 1 из 1
MDX пересечение продаж
    #40089287
montoya.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
приветсвтую.
прошу подсказать.
суть вопроса
посчитать сколько наименований пересекаются по продажам в разрезе хотя бы одной страны.

что бы считалось на уровне страны и товара
и общий итог выводило суммируя

Код: vbnet
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.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
with 
	dynamic set [Selected Countries]
	as (
		 [Geography].[Geography].[Country].Members
	   )
	dynamic set [Selected Products]
	as (
		 [Product].[Product].[Product].Members
	   )
	member [Orders By Selected Countries] 
	as (  
			  SUM([Selected Countries]
				 ,[Measures].[Reseller Order Quantity]
				 )
		)
	member [Intersect]
	as (
		IIF([Measures].[Reseller Order Quantity] > 0 
			and [Orders By Selected Countries]  > 0 
			and [Measures].[Reseller Order Quantity]<[Orders By Selected Countries] 
			,1,0)
	   )
SELECT  { [Intersect]
		, [Measures].[Reseller Order Quantity]
		, [Orders By Selected Countries] 
		} 
		* [Geography].[Country].Members
		ON 0
	, NON EMPTY { [Product].[Product].[Cable Lock]
				 ,[Product].[Product].[HL Road Frame - Black, 44]
				 ,[Product].[Product].&[393]
				 } ON 1
FROM [Adventure Works]
WHERE ([Date].[Calendar].[Month].&[2011]&[12]
,{[Geography].[Geography].[Country].&[France]
		   , [Geography].[Geography].[Country].&[Canada]
		   , [Geography].[Geography].[Country].&[United Kingdom]}
	   )



выше скрипт
на уровне товара значение ставит правильное.(1 или 0)
но как сделать, что бы на уровне категории сумировало то, что на уровне товара?
и на уровне общего итога выводило сумму данных еденичек.

спасибо.
...
Рейтинг: 0 / 0
MDX пересечение продаж
    #40089288
Фотография Критик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
montoya.,

проставить эти данные в scope на детальном уровне в фиктивную null-меру с sum-агрегацией
...
Рейтинг: 0 / 0
MDX пересечение продаж
    #40089290
Фотография Критик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообще, зря вы это делаете. Решение будет неподдерживаемым.
...
Рейтинг: 0 / 0
MDX пересечение продаж
    #40089292
montoya.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Критик
Вообще, зря вы это делаете. Решение будет неподдерживаемым.

а как не зря решить задачу?)
...
Рейтинг: 0 / 0
MDX пересечение продаж
    #40089296
montoya.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Критик
montoya.,

проставить эти данные в scope на детальном уровне в фиктивную null-меру с sum-агрегацией


не получилось...

вот такое прописал, но на уровне категорий всё равно результат не тот что нужен.

Код: vbnet
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.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
create dynamic set [Selected Countries]
	as (
		 [Geography].[Geography].[Country].Members
	   );

create dynamic set [Selected Products]
	as (
		 [Product].[Product].[Product].Members
	   );

create member CurrentCube.[Measures].[Orders By Selected Countries] 
	as (  
			  SUM([Selected Countries]
				 ,[Measures].[Reseller Order Quantity]
				 )
		);

create member CurrentCube.[Measures].[hidden Intersect]
	as (
		IIF([Measures].[Reseller Order Quantity] > 0 
			and [Orders By Selected Countries]  > 0 
			and [Measures].[Reseller Order Quantity]<[Orders By Selected Countries] 
			,1,0)
	   );

create member CurrentCube.[Measures].[Intersect]
as null;

scope ([Measures].[Intersect]);
    scope([Product].[Product].Members);
        this = [Measures].[hidden Intersect];
    end scope;

    scope([Product].[Category].Members);
        this = sum([Measures].[hidden Intersect]);
    end scope;
end scope;




...
Рейтинг: 0 / 0
MDX пересечение продаж
    #40089299
montoya.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Критик
montoya.,

проставить эти данные в scope на детальном уровне в фиктивную null-меру с sum-агрегацией


спасибо, вроде получил, что хотел.
при таком варианте


Код: sql
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.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
create dynamic set [Selected Countries]
	as (
		 [Geography].[Geography].[Country].Members
	   );

create dynamic set [Selected Products]
	as (
		 [Product].[Product].[Product].Members
	   );

create member CurrentCube.[Measures].[Orders By Selected Countries] 
	as (  
			  SUM([Selected Countries]
				 ,[Measures].[Reseller Order Quantity]
				 )
		);

create member CurrentCube.[Measures].[hidden Intersect]
	as (
		IIF([Measures].[Reseller Order Quantity] > 0 
			and [Orders By Selected Countries]  > 0 
			and [Measures].[Reseller Order Quantity]<[Orders By Selected Countries] 
			,1,0)
	   );

create member CurrentCube.[Measures].[Intersect]
as null;

scope ([Measures].[Intersect]);
    scope([Product].[Product].Members);
        this = [Measures].[hidden Intersect];
    end scope;

    scope([Product].[Product].[All]);
        this = SUM(([Selected Products],[Product].[Product Categories].CurrentMember),[Measures].[hidden Intersect]
                    );
    end scope;
end scope;
...
Рейтинг: 0 / 0
MDX пересечение продаж
    #40089312
Фотография Критик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
montoya.
Критик
Вообще, зря вы это делаете. Решение будет неподдерживаемым.

а как не зря решить задачу?)


Имхо конечно, но на уровне хранилища такое нужно решать - банально больше народа сможет разобраться в SQL-коде, чем в MDX
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / MDX пересечение продаж
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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