2015-08-28 33 views
0

我有一个MDX查询看起来像这样:MDX - 行数为1后订购

WITH 
SET selection as ([Dates].[Year].&[2014],[Dates].[Month].&[1])   
set testset as (selection, [ThroughputID].[ID].ALLMEMBERS) 

MEMBER [Measures].[RowCount] AS COUNT (testset) 

SELECT 
selection ON 0, 
[Measures].RowCount 
ON 1 
FROM (SELECT [Dates].[Y-H-Q-M].MEMBERS ON 0 FROM [Throughput]) 

行数给出1182918

如果我添加以“测试集”像下面,行数给出1,如何来?

WITH 
SET selection as ([Dates].[Year].&[2014],[Dates].[Month].&[1])   
set testset as ORDER(selection, [ThroughputID].[ID].ALLMEMBERS) 

MEMBER [Measures].[RowCount] AS COUNT (testset) 

SELECT 
selection ON 0, 
[Measures].RowCount 
ON 1 
FROM (SELECT [Dates].[Y-H-Q-M].MEMBERS ON 0 FROM [Throughput]) 
+0

惊讶它实际运行 - 这是一个非常奇怪的第二个参数为ORDER函数[吞吐量]。[ID] .ALLMEMBERS' – whytheq

+0

你想用该命令实现什么? – mxix

+0

我想创建一个Quartiles的计算,如果我理解了所有正确的设置需要排序才能做到这一点。 – supremo

回答

1

请试试这个,然后你可以检查数据,了解变化:

WITH 
    SET selection AS 
    (
     [Dates].[Year].&[2014] 
    ,[Dates].[Month].&[1] 
    ) 
    SET testset AS 
    Order 
    (
     selection 
    ,[ThroughputID].[ID].ALLMEMBERS 
    ) 
SELECT 
    {} ON 0 
,testset ON 1 
FROM 
(
    SELECT 
    [Dates].[Y-H-Q-M].MEMBERS ON 0 
    FROM [Throughput] 
); 

我怀疑你的脚本的这部分失败和解决的一个成员:

Order 
    (
     selection 
    ,[ThroughputID].[ID].ALLMEMBERS 
    ) 

订单的第二个参数通常是数字 - 你已经使用了一个集合。