在日期范围之间使用TOPCOUNT进行MDX查询,返回顶部的一些空值

时间:2014-05-14 13:49:47

标签: mdx pentaho olap olap-cube mondrian

我正在使用MDX查询在两个日期之间获得前10个受欢迎的产品。奇怪的是,结果是由一些产品在那个日期范围内的喜欢组成,有些产品根本就没有任何喜欢。这是查询:

SELECT
{ [Measures].[Likes] } ON COLUMNS,
{ TOPCOUNT([Products].[Name].Members, 10, [Measures].[Likes]) } ON ROWS
FROM [Likes]
WHERE ( [Date].[2014].[3].[29]:[Date].[2014].[4].[5] )

结果如下:

               [Measures].[Likes]
[Product].[XX]
[Product].[XX]
[Product].[XX]          139
[Product].[XX]
[Product].[XX]           1
[Product].[XX]
[Product].[XX]
[Product].[XX]          125
[Product].[XX]          111
[Product].[XX]           1

例如,如果我将上限更改为20,结果将会有更多带有喜欢的产品,但也会有更多空的产品,而不是有序的(通常是顶部)。

使用NON EMPTY使查询仅返回5个结果而不是10个结果,但仍然没有排序。

谢谢!

1 个答案:

答案 0 :(得分:1)

尝试此查询

SELECT { [Measures].[Likes] } ON 0, Head(ORDER([Products].[Name].Members,[Measures].[Likes], DESC), 10) ON 1 FROM [Likes] WHERE ( [Date].[2014].[3].[29]:[Date].[2014].[4].[5] )