MDX合并两个结果集实现inner join的效果

0
现在需要对一个销售的cube进行按区域按产品名字的mdx查询,显示出每个产品,在不同区域的销售额,现在问题是:希望返回的结果集的行不仅包含产品名称同时希望也显示出该产品的价格和供应商,具体显示效果如下:
DMX.png

请大牛们不吝赐教
已邀请:
1

felixwon 2014-06-19 回答

with member [Measures].[Supplier] AS [Dim Product].[Product key].CurrentMember.Properties("Supplier")
member [Measures].[Last Order Price] AS [Dim Product].[Product Key].CurrentMember.Properties("Last Order Price")

select {
[Measures].[Last Order Price],
[Measures].[Supplier],
[Measures].[Order Quantity]
} ON COLUMNS,
non empty {
[Dim Product].[Product Key].Members * [Dim Territory].[State].Members
} on rows
FROM salesCube
0

felixwon 2014-06-19 回答

WIth
Member [Measures].[Last Order Price] as [Dim Product].[Product].Properties("Last Order Price")
0

AndrewMelb 2014-06-19 回答

谢谢,但是问题是我希望把两个合在一起,因为不知道如何处理维度。获得两个结果集的语句分别如下:
with member [Measures].[Supplier] AS [Dim Product].[Product key].CurrentMember.Properties("Supplier")
member [Measures].[Last Order Price] AS [Dim Product].[Product Key].CurrentMember.Properties("Last Order Price")

select {
[Measures].[Last Order Price],
[Measures].[Supplier]
} ON COLUMNS,
non empty {
[Dim Product].[Product Key].AllMembers
} ON ROWS
FROM salesCube
----------------------------------------------------------------------------------------------------------
SELECT {
([Dim Territory].[State].&[VIC]),
([Dim Territory].[State].&[NSW]),
([Dim Territory].[State].&[QLD]),
([Dim Territory].[State].&[SA]),
([Dim Territory].[State].&[WA]),
([Dim Territory].[State])
}
on columns,
non empty {
[Dim Product].[Product Key].Members
} on rows
FROM salesCube
where { [Measures].[Order Quantity] }
0

heaven - 微软BI架构、SSRS高级开发 2014-06-19 回答

这样试试
with member [Measures].[Supplier] AS [Dim Product].[Product key].CurrentMember.Properties("Supplier")
member [Measures].[Last Order Price] AS [Dim Product].[Product Key].CurrentMember.Properties("Last Order Price")

select {
[Measures].[Last Order Price],
[Measures].[Supplier],[Measures].[Order Quantity]
} ON COLUMNS,
non empty {
{
([Dim Territory].[State].&[VIC]),
([Dim Territory].[State].&[NSW]),
([Dim Territory].[State].&[QLD]),
([Dim Territory].[State].&[SA]),
([Dim Territory].[State].&[WA]),
([Dim Territory].[State])
} ,[Dim Product].[Product Key].AllMembers
} ON ROWS
FROM salesCube
0

天桥下的郑成功 - Hadoop大数据开发工程师、数仓架构师、熟悉数据仓库设计、Hadoop、Spark、HBase、Hive、SSIS等开发 2015-01-12 回答

结果已经很接近了, 把最后的“,”改成 "*" 就可以了。

with member [Measures].[Supplier] AS
[Dim Product].[Product key].CurrentMember.Properties("Supplier")
member [Measures].[Last Order Price] AS
[Dim Product].[Product Key].CurrentMember.Properties("Last Order Price")

select {
[Measures].[Last Order Price],
[Measures].[Supplier],[Measures].[Order Quantity]
} ON COLUMNS,
non empty {
{
([Dim Territory].[State].&[VIC]),
([Dim Territory].[State].&[NSW]),
([Dim Territory].[State].&[QLD]),
([Dim Territory].[State].&[SA]),
([Dim Territory].[State].&[WA]),
([Dim Territory].[State])
}
*
{[Dim Product].[Product Key].AllMembers}
} ON ROWS
FROM salesCube

要回复问题请先登录注册