Ssas MDX-各日期总销售额排名前十的销售人员
我正在尝试这样做,但在多维数据集中使用MDX时:Ssas MDX-各日期总销售额排名前十的销售人员,ssas,mdx,Ssas,Mdx,我正在尝试这样做,但在多维数据集中使用MDX时: select * from ( select Date, SalesPerson, TotalSales, row_number() over(partition by Date order by TotalSales desc) as Num from SalesFact as ms ) as x where Num < 5 order by Date, SalesPerson,
select
*
from
(
select
Date, SalesPerson, TotalSales, row_number() over(partition by Date order by TotalSales desc) as Num
from SalesFact as ms
) as x
where
Num < 5
order by
Date, SalesPerson, Num desc
我想要的是一个查询,它将日期和销售人员放在行上,将TotalSales放在列上
我想看看每个月的前5名销售人员,以及他们的销售额
当我尝试这样做时,它似乎没有按每个日期筛选/分组销售人员,并为每个日期获得前5名。返回的值到处都是,包括非常低的值和空值。值得注意的是,尽管TotalSales差异很大,但每个日期的销售人员列表都是相同的
select
[Measures].[TotalSales] on columns,
(
[Date].[Hierarchy].[Date].members,
subset
(
order
(
[SalesPerson].children,
[Measures].[TotalSales],
bdesc
),
0,
5
)
) on rows
from
Hypercube
似乎子集内的所有内容都需要按当前[Date].[Hierarchy].[Date]进行筛选,但使用CurrentMember会产生交叉连接/轴错误:
select
[Measures].[TotalSales] on columns,
(
[Date].[Hierarchy].[Date].members,
subset
(
order
(
([SalesPerson].children, [Date].[Hierarchy].CurrentMember),
[Measures].[TotalSales],
bdesc
),
0,
5
)
) on rows
from
Hypercube
错误:正在执行查询。。。查询3、2层次结构
在交叉连接函数中多次使用
执行完毕
我尝试了上一个查询的几个变体,但没有成功
希望这些答案也能对其他刚接触MDX的人有所帮助。我最终找到了如何做我想要的事情。解决方案围绕使用Generate函数展开,从MSDN的基本示例开始,将维度和度量值修改为多维数据集中的维度和度量值,使我朝着正确的方向前进 从 有更好的办法吗 另外,要小心尝试将集合重构到with块中。当对集合进行评估/更改其范围并将更改结果时,这似乎会发生变化
with
set
Dates as
{
[Date].[Hierarchy].[Date].&[2009-02-01T00:00:00],
[Date].[Hierarchy].[Date].&[2009-03-01T00:00:00],
[Date].[Hierarchy].[Date].&[2009-04-01T00:00:00]
}
select
Measures.[TotalSales]
on columns,
generate
(
Dates,
topcount
(
[Date].Hierarchy.CurrentMember
*
[SalesPerson].Children,
5,
Measures.[TotalSales]
)
)
on rows
from
Hypercube
with
set
Dates as
{
[Date].[Hierarchy].[Date].&[2009-02-01T00:00:00],
[Date].[Hierarchy].[Date].&[2009-03-01T00:00:00],
[Date].[Hierarchy].[Date].&[2009-04-01T00:00:00]
}
select
Measures.[TotalSales]
on columns,
generate
(
Dates,
topcount
(
[Date].Hierarchy.CurrentMember
*
[SalesPerson].Children,
5,
Measures.[TotalSales]
)
)
on rows
from
Hypercube