Ssas MDX:两个组的前X名和两个组中的一个组的前Y名(X>;Y)
我试图写一个查询,根据年份和产品显示互联网销售额前4名。同时,我试图仅根据年份显示排名前1的经销商销售额 我写了一个如下的查询,以实现按年份和产品划分的前4名互联网销售额,但不知道如何将下一个指标添加到结果集中Ssas MDX:两个组的前X名和两个组中的一个组的前Y名(X>;Y),ssas,mdx,olap-cube,Ssas,Mdx,Olap Cube,我试图写一个查询,根据年份和产品显示互联网销售额前4名。同时,我试图仅根据年份显示排名前1的经销商销售额 我写了一个如下的查询,以实现按年份和产品划分的前4名互联网销售额,但不知道如何将下一个指标添加到结果集中 WITH SET [TopSalesbyYearAndProd] AS Generate ( [Date].[Calendar Year].[Calendar Year].MEMBERS ,TopCount (
WITH
SET [TopSalesbyYearAndProd] AS
Generate
(
[Date].[Calendar Year].[Calendar Year].MEMBERS
,TopCount
(
[Date].[Calendar Year].CurrentMember
*
[Product].[Product].[Product].MEMBERS
,4
,[Measures].[Internet Sales Amount]
)
)
SELECT
{[Measures].[Internet Sales Amount]} ON 0
,NON EMPTY
{[TopSalesbyYearAndProd]} ON 1
FROM [Adventure Works];
这似乎有效-可能有一种更优雅的方式,但我没有发现:
WITH
SET [TopSalesbyYearAndProd] AS
Generate
(
[Date].[Calendar Year].[Calendar Year].MEMBERS
,TopCount
(
[Date].[Calendar Year].CurrentMember
*
[Product].[Product].[Product].MEMBERS
,4
,[Measures].[Internet Sales Amount]
)
)
MEMBER [Measures].[TopResellerAmount] AS
(
Generate
(
{[Date].[Calendar Year].CurrentMember}
,TopCount
(
[Date].[Calendar Year].CurrentMember
*
[Product].[Product].[Product].MEMBERS
,1
,[Measures].[Reseller Sales Amount]
)
).Item(0).Item(1)
,[Measures].[Reseller Sales Amount]
)
SELECT
{
[Measures].[Internet Sales Amount]
,[Measures].[TopResellerAmount]
} ON 0
,NON EMPTY
{[TopSalesbyYearAndProd]} ON 1
FROM [Adventure Works];
谢谢你。一旦你知道了这个优雅的版本,请立即发布。@sagarpant-同上:如果你在我之前找到它,请发布!
WITH
SET [TopSalesbyYearAndProd] AS
Generate
(
[Date].[Calendar Year].[Calendar Year].MEMBERS
,TopCount
(
[Date].[Calendar Year].CurrentMember
*
[Product].[Product].[Product].MEMBERS
,4
,[Measures].[Internet Sales Amount]
)
)
MEMBER [Measures].[TopResellerAmount] AS
(
Generate
(
{[Date].[Calendar Year].CurrentMember}
,TopCount
(
[Date].[Calendar Year].CurrentMember
*
[Product].[Product].[Product].MEMBERS
,1
,[Measures].[Reseller Sales Amount]
)
).Item(0).Item(1)
,[Measures].[Reseller Sales Amount]
)
SELECT
{
[Measures].[Internet Sales Amount]
,[Measures].[TopResellerAmount]
} ON 0
,NON EMPTY
{[TopSalesbyYearAndProd]} ON 1
FROM [Adventure Works];