Как включить членов с конкретными дочерними элементами в перекрестное объединение запросов MDX?
Я новичок в MDX, и у меня есть следующий сценарий. Мне нужно рассчитать доход по конкретному отделу (измерение продукта), конкретному магазину (измерение местоположения) и по определенному временному диапазону.
У меня есть уровни куба следующим образом. Product <- Department <- Item
Location <- Region <- Store
Time <- Year <- Month <-Day
Скажите, если у меня есть следующие участники
[Product].[Dairy].[Oak Farm]
[Product].[Dairy].[GV]
[Location].[US West].[LA]
[Location].[US West].[CA]
[Time].[2015].[01].[01] : [Time].[2015].[02].[01]
Тогда я должен получить результат, где в Product должен быть указан только GV, а в местоположении должен быть указан только CA
2015-01-01 US West Dairy $100
2015-02-01 US West Dairy $100
Любая помощь будет оценена.
2 ответа
Возможно несколько способов в зависимости от точных требований.
SELECT
[Measures].[SomeCubeMeasure] ON 0,
{[Time].[2015].[01].[01] : [Time].[2015].[02].[01]}*
Exists
(
[Location].[Region].MEMBERS
,[Location].[US West].[CA]
)*
Exists
(
[Product].[Department].MEMBERS
,[Product].[Dairy].[GV]
) ON 1
FROM [yourCube];
редактировать
Чтобы создать показатель, который просто смотрит на определенные магазины, вы можете использовать что-то вроде этого:
WITH MEMBER [Measures].[Store1and2Measure] AS
Aggregate
(
{
[Store][Region1][Store1]
,[Store][Region1][Store2]
}
,[Measures].[SomeCubeMeasure]
)
SELECT
[Measures].[Store1and2Measure] ON 0,
[Location].[US West].[LA] ON 1
FROM [yourCube];
Очень простой способ сделать это. @Whytheq дал гораздо лучшее решение.
SELECT
(
[Product].[Dairy].[GV]*
{[Time].[2015].[01].[01] : [Time].[2015].[02].[01]}*
[Location].[US West].[CA]
) ON 1,
[Measures].Revenue ON 0
FROM [YourCube]