MDX订单不起作用

时间:2018-02-04 23:12:26

标签: mdx

我使用AdventureWorks Cube和MS SQL 2017来学习MDX。 我想根据互联网销售额返回产品的前五大销售子类别:

SELECT Subset

(Order

    ([Product].[Product Categories].[SubCategory].members

    ,[Measures].[Internet Sales Amount]

    ,DESC

    )

    ,0

    ,5

)
ON 0
FROM [Adventure Works]

返回的结果未正确排序。有什么我做错了吗?

Road Bikes Mountain Bikes Touring Bikes Tires and Tubes Helmets

$ 29,358,206.96 $ 26,492,684.38 $ 10,451,490.22 $ 925.21 $ 258,712.93

我也试过BDESC,似乎得到了相同的结果。

2 个答案:

答案 0 :(得分:2)

此查询将有助于解释发生的情况。它正确排序,但之后它在屏幕上显示默认度量,因为您没有指定要显示的度量,只有要按排序的度量:

SELECT {[Measures].[Internet Sales Amount], [Measures].DefaultMember} on 0,
Subset
(Order
    ([Product].[Product Categories].[SubCategory].members
    ,[Measures].[Internet Sales Amount]
    ,DESC
    )
    ,0
    ,5
)
ON 1
FROM [Adventure Works]

我建议使用该查询但删除[Measures].[DefaultMember],您应该得到预期的结果。

答案 1 :(得分:1)

您想要TOPCOUNT MDX功能

SELECT
[Measures].[Internet Sales Amount] ON COLUMNS
,   TOPCOUNT([Product].[Subcategory].[Subcategory].MEMBERS,5,[Measures].[Internet Sales Amount]) ON ROWS
FROM
[Adventure Works]