好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

MDX示例:统计各产品每个季度的销售排名

ITPUB数据仓库与数据挖掘论坛用户Damon__Li问: 统计 各种 产品 在本年 每个 季度 的 销售 排名 ,(现在有日期、 产品 维度和 销售 额度量)大体显示如下 Q1 Q2 Q3 Q4 销售 额 排名 销售 额 排名 销售 额 排名 销售 额 排名 产品 1 3000 2 2000 3 5000 1 40

ITPUB数据仓库与数据挖掘论坛用户Damon__Li问:

统计 各种 产品 在本年 每个 季度 的 销售 排名 ,(现在有日期、 产品 维度和 销售 额度量)大体显示如下
Q1 Q2 Q3 Q4
销售 额 排名 销售 额 排名 销售 额 排名 销售 额 排名
产品 1 3000 2 2000 3 5000 1 4000 1
产品 2 4000 1 3000 2 4000 2 2000 3
产品 3 2000 3 4000 1 3000 3 3000 2
…….
请熟悉MDX的前辈指点,提供思路。

10多年前就搞MDX,尽管现在不从事这方面工作了,但这种问题看到就手痒。

以下是在SSAS 2008 R2 及SQL Server [Adventure Works] 示例 数据库(在Codeplex有下载)给出的求解( 示例 中, 季度 位于时间维度第2层级):

统计 各种 产品 在本年 每个 季度 的 销售 排名 .MDX

1

2

3

4

5

6

7

8

9

10

11

12

13

14

WITH

MEMBER [Measures].[SalesRank] AS

RANK(

[Product].[Product Categories].currentmember,

[Product].[Product Categories].[ All Products].children ,

[Measures].[Sales Amount]

)

SELECT

{DESCENDANTS([ Date ].[Calendar].[Calendar Year ].&[2007],2)}

*{[Measures].[Sales Amount],[Measures].[SalesRank]} ON 0,

[Product].[Product Categories].[ All Products].children ON 1

FROM

[Adventure Works]

以下是在SSAS中执行的情况,可以将[Date].[Calendar].[Calendar Year].&[2007]用[Date].[Calendar].CurrentMember替换,改为在WHERE语句里指定年度[Date].[Calendar].[Calendar Year].&[2007],放在查询切片中后,利于在切片中指定查询条件。

统计 各种 产品 在本年 每个 季度 的 销售 排名 " src="http://cdn.verydemo.com/upload/2013_06_20/13716877427240.jpg" width="760" height="416" >

统计 各种 产品 在本年 每个 季度 的 销售 排名

查看更多关于MDX示例:统计各产品每个季度的销售排名的详细内容...

  阅读:34次