从 MDX 输出返回'n'行



如何过滤第一个'n'行的MDX输出,然后在下一个'n'行上循环循环,依此类推。

SELECT  
{ [Measures1].members,  [Measures2].members } ON COLUMNS,  
{ [Date].members } ON ROWS  
FROM [cube]

我正在尝试此操作,因为我想在MDX输出的每个" N"行上循环并将结果导出到Excel。

原始查询返回大量记录。这就是我打算在记录上循环的原因。

您可以这样做:首先,占据顶部N(假设前5名成员),此后以前五名以外的前10名成员。之后,除了前10名以外的前15名成员,依此类推...

这是[someamount]订购的前5个公式,这是多维数据集的措施之一

SELECT  
{ [Measures].[SomeAmount] } ON COLUMNS,  
EXCEPT(TopCount([Date].members, 5,[Measures].[SomeAmount] ),TopCount([Date].members, 0,[Measures].[SomeAmount] ))  ON ROWS  
FROM [cube]

和接下来的五个(前五个被跳过):

SELECT  
{ [Measures].[SomeAmount] } ON COLUMNS,  
EXCEPT(TopCount([Date].members, 10,[Measures].[SomeAmount]  ),TopCount([Date].members, 5,[Measures].[SomeAmount]  ))  ON ROWS  
FROM [cube]

等等...

如果您有AdventureWorks Cube,则可以在那里尝试此查询:

SELECT  
{ [Measures].[Internet Order Count] } ON COLUMNS,  
EXCEPT(TopCount([Date].[Calendar].members, 10, [Measures].[Internet Order Count]),
TopCount([Date].[Calendar].members, 5,[Measures].[Internet Order Count] ))  ON ROWS  
FROM [Adventure Works]

,以及从您的评论中进行交叉加入的情况:

SELECT 
{Department.members}  on COLUMNS,
EXCEPT(TopCount({[Product].[Status].members}*{Date.[Calendar].members}, 10), 
TopCount({[Product].[Status].members}*{Date.[Calendar].members}, 5)) on ROWS
FROM [Adventure Works]

您也可以在冒险上尝试此操作。

以及评论中的示例:

SELECT EXCEPT(TopCount({dim1.members}*{dim2.members},10), 
TopCount({dim1.members}*{dim2.members},5)) on ROWS, 
{dim3.members} on COLUMNS 
FROM [cube]

希望它有帮助。

相关内容

  • 没有找到相关文章

最新更新