首页 > 解决方案 > MDX SSAS。TOP COUNT

问题描述

我在 SSAS 中创建了一个多维数据集:Measures: Income Dimension Time (Hierarchy: day-month-quarter-year) Dimension CustomerId

我需要创建一个报告,其中:我将按收入查看前 10 名和后 10 名客户,以及总收入的百分比。它应该在每个层次结构级别上工作。我需要在 Visual Studio(而不是 SQL Server)中为每个转换编写一个 MDX。问题是 Visual Studio 在 MDX 格式方面与 SQL Server 不同,所以我很难创建一个可以正常工作的代码。这个在 SQL Server 中完美运行,但在 SSAS 中不起作用:

Select [Measures] . [Income] on columns , TopCount ([Dim Customers].[Customer Id] . children,10 ) on rows from [CUBE FINAL] 我试图重写它: TopCount([Dim Customers].[Customer Id].Members,10,[Measures].[Income])

虽然它被正常处理,但 id 不起作用并在报告中给我“null”。

错误在哪里?谢谢!!

标签: visual-studiossasmdx

解决方案


Cube Calculations 用于生成计算的Measures. 它们不能用于控制返回的行数,所以我认为你不能TOPCOUNT()在 Cube Calculation 中使用来做你想做的事。

可以使用计算来汇总前 10 位客户的收入,但它不会告诉您这些客户是谁,也不会将返回的行限制为仅返回给这些客户。


推荐阅读