如何在 MDX 查询交叉连接中包含具有特定子项的成员?
How to include members with specific children in MDX query cross join?
我是 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]
然后我应该得到结果,因为产品中的位置应该只包含 GV,位置应该只包含 CA
2015-01-01 US West Dairy 0
2015-02-01 US West Dairy 0
如有任何帮助,我们将不胜感激。
可能有几种方法,具体取决于具体要求。
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]
我是 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]
然后我应该得到结果,因为产品中的位置应该只包含 GV,位置应该只包含 CA
2015-01-01 US West Dairy 0
2015-02-01 US West Dairy 0
如有任何帮助,我们将不胜感激。
可能有几种方法,具体取决于具体要求。
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]