您好,欢迎访问一九零五行业门户网

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层级):
统计各种产品在本年每个季度的销售排名.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%>
统计各种产品在本年每个季度的销售排名
其它类似信息

推荐信息