MDX SSAS秩行数函数

MDX SSAS秩行数函数,ssas,mdx,rank,partition,Ssas,Mdx,Rank,Partition,我有一个T-SQL查询中的现有SSRS报告,我正在尝试使用SSAS多维数据集上的MDX查询重新创建它。我一直在将Row num和rank逻辑重写到MDX 其内容如下: 选择ceil((按产品订单按年份/月份划分)上方的行号())/12) SQL中的Rank1。有人能告诉我这是否可以用MDX实现吗?在多维数据集中,PRODUCT和YEARMONTH来自不同的维度 谢谢你的帮助 有Rank()函数。例如: with Dynamic Set OrderedSet as Order( NonEm

我有一个T-SQL查询中的现有SSRS报告,我正在尝试使用SSAS多维数据集上的MDX查询重新创建它。我一直在将Row num和rank逻辑重写到MDX

其内容如下:

选择ceil((按产品订单按年份/月份划分)上方的行号())/12)

SQL中的Rank1。有人能告诉我这是否可以用MDX实现吗?在多维数据集中,PRODUCT和YEARMONTH来自不同的维度

谢谢你的帮助

有Rank()函数。例如:

with
Dynamic Set OrderedSet as
Order(
    NonEmptyCrossJoin(
       [Date].[Year].[Year].Members,
       [Product].[Product].[Product].Members,
       [Measures].[Invoice Count],
       2
    ),
    [Measures].[Invoice Count],
    BDESC
)

Member [Measures].[Rank] as
Rank(
        ([Client].[Client].Currentmember,[Date].[Year].CurrentMember),
        OrderedSet
)

select {[Measures].[Invoice Count],[Measures].[Rank]} on 0,
non empty OrderedSet on 1
from [BI Fake]
where ([Date].[Day].&[20160120])

您可以从my.com上阅读有关它的详细信息。

您可以使用Generate重复以下列组:

WITH 
  SET [SalesRank] AS 
    Generate
    (
      [Customer].[Customer Geography].[State-Province]
     ,Order
      (
        NonEmpty
        (
          (
            [Customer].[Customer Geography].CurrentMember
           ,[Product].[Product Categories].[Subcategory]
          )
         ,{[Measures].[Internet Sales Amount]}
        )
       ,[Measures].[Internet Sales Amount]
       ,BDESC
      )
    ) 
  MEMBER [Measures].[CategoryRank] AS 
    Rank
    (
      (
        [Customer].[Customer Geography].CurrentMember
       ,[Product].[Product Categories].CurrentMember
      )
     ,Exists
      (
        [SalesRank]
       ,[Product].[Product Categories].CurrentMember
      )
    ) 
SELECT 
  {
    [Measures].[Internet Sales Amount]
   ,[Measures].[CategoryRank]
  } ON 0
 ,[SalesRank] ON 1
FROM [Adventure Works];
其结果是:


谢谢。我能够获得每个记录的排名函数,但我需要在产品的前12个月显示相同的数字。你能告诉我怎么做吗?谢谢。我能够获得每个记录的排名函数,但我需要在产品的前12个月显示相同的数字。你能建议我怎么做吗?你能发布一个想要的输出吗?