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层级):
统计各种产品在本年每个季度的销售排名.mdx1
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].[allproducts].children ,
[measures].[sales amount]
)
select
{descendants([date].[calendar].[calendaryear].&[2007],2)}
*{[measures].[sales amount],[measures].[salesrank]} on0,
[product].[product categories].[allproducts].childrenon1
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 style=max-width:90%>
统计各种产品在本年每个季度的销售排名