Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sorting MDX查询中的排序和分页(MS Analysis Services)_Sorting_Paging_Olap_Mdx_Cube - Fatal编程技术网

Sorting MDX查询中的排序和分页(MS Analysis Services)

Sorting MDX查询中的排序和分页(MS Analysis Services),sorting,paging,olap,mdx,cube,Sorting,Paging,Olap,Mdx,Cube,我构建了一个MDX查询,从OLAP多维数据集中检索特定的文章。基本上,它返回特定制造商生产的特定物品类别节点下的物品: SELECT NON EMPTY ( Hierarchize ( { DrilldownLevel ( { [T DAT Article].[Ar ID].[All] }

我构建了一个MDX查询,从OLAP多维数据集中检索特定的文章。基本上,它返回特定制造商生产的特定物品类别节点下的物品:

SELECT NON EMPTY
(
    Hierarchize
    (
        {
            DrilldownLevel
            (
                {
                    [T DAT Article].[Ar ID].[All]
                }
            )
        }       
    ) 

)

DIMENSION PROPERTIES PARENT_UNIQUE_NAME,
[T DAT Article].[Ar ID].[Ar ID].[Ar Key],
[T DAT Article].[Ar ID].[Ar ID].[Ar LongName] 
ON COLUMNS 
FROM [Catalog_2009]

WHERE 
(
    [T DAT Structure].[St St ID FK].&[193066], -- specific article-category node
    [T DAT Firm].[Fi ID].&[86] -- specific manufacturer
) 

CELL PROPERTIES VALUE, FORMAT_STRING, LANGUAGE, BACK_COLOR, FORE_COLOR, FONT_FLAGS
现在我想增强这个查询以支持分页和排序。意思是我可以提供:

  • 页面索引(如0)
  • 页面大小(如30)
  • 排序列(如Ar LongName)
  • 排序方向(如升序)
我应该采取什么方法?我看了一下and条款。但是这些基本上限制了查询的“层次化”部分的结果,这意味着它们切断了层次结构而不是最终结果


有谁能给我一个如何让分页和排序工作的提示吗?

排序在MDX中是一件痛苦的事情,或者至少我一直都是这样想的。如果您的查询在行上只有一个维度,在列上只有一个维度,这将使生活变得更加简单

ORDER关键字可以应用于一个集合,您只需给它一个数字进行排序,并告诉它使用ASC或DESC的方式

ASC或DESC问题令人困惑,因为您还可以指定BASC或BDESC。“B”表示“中断”,它表示您是希望行(或列)在其继承架构组内进行排序,还是希望在排序时完全中断层次结构,并完全重新排序行

这里有一个简单的例子

ORDER({[Time].[Month].members}, [Measures].[Gross Sales], BASC)

这意味着您希望按销售总值的升序列出所有月份。您正在打破层次结构,因此月份不会在其父年份中分组,并且可以通过排序操作完全混合在一起。

请看下面的示例

我已按销售额降序列出了产品

select 
{[Measures].[Internet Sales Amount]}on 0,
order ({[Product].[Product].[Product]},
[Measures].[Internet Sales Amount],desc
)on 1 
from 
[Adventure Works]
结果

现在让我们翻页。我正在创建一个10行页面,第1页是

select 
{[Measures].[Internet Sales Amount]}
on 0,
subset(
order 
(
{
[Product].[Product].[Product]
},[Measures].[Internet Sales Amount],desc
)
,0,10)
on 1 

from 
[Adventure Works]
结果

现在翻到第2页

select 
{[Measures].[Internet Sales Amount]}
on 0,
subset(
order 
(
{
[Product].[Product].[Product]
},[Measures].[Internet Sales Amount],desc
)
,10,10)
on 1 

from 
[Adventure Works]
结果


这是一个很好的答案。。。但是分页呢?