2015-04-02 39 views
4

我在MDX如何添加条件(测量大于0)在MDX查询

With 

    member [Week Count] as 
    ( 
     ([WORK ].[Complying Flag].&[COMPLYING], [Measures].[No of Work ]) 
/([WORK ].[Complying Flag].[(All)].[All], [Measures].[No of Work ])) *100 
select 
    {[Week Count]} on columns, 
    {[CLOSED DATE].[Week End Date].members} on rows 
FROM [test ] 

以下查询我需要添加where子句where [Measures].[ACT LAB HRS]>0 但它总是返回错误的条件,如何纠正它?

回答

5

你可以使用Filter但是我们需要一套过滤所以是这样的:

WITH 
    MEMBER [Week Count] as 
    ( 
     ([WORK ].[Complying Flag].&[COMPLYING], [Measures].[No of Work ]) 
/([WORK ].[Complying Flag].[(All)].[All], [Measures].[No of Work ]) 
    ) *100 
SELECT 
    {[Week Count]} on columns, 
    {[CLOSED DATE].[Week End Date].members} on rows 
FROM [test] 
WHERE 
    (
    FILTER 
     (
     [SomeDimension].[SomeHierarchy].members, 
     [Measures].[ACT LAB HRS]>0 
    ) 
    ); 

另一种方法是将包括HAVING条款:

WITH 
    MEMBER [Measures].[Week Count] as 
    ( 
     ([WORK ].[Complying Flag].&[COMPLYING], [Measures].[No of Work ]) 
/([WORK ].[Complying Flag].[(All)].[All], [Measures].[No of Work ]) 
    ) *100 
SELECT 
    { 
    [Measures].[Week Count], 
    [Measures].[ACT LAB HRS] 
    } ON 0, 
    {[CLOSED DATE].[Week End Date].members} 
    HAVING [Measures].[ACT LAB HRS]>0 
    ON 1 
FROM [test]; 
+1

两个轴都是“0 ”。 – SouravA 2015-04-03 09:38:01

+0

谢谢@Sourav_Agasti ....错别字 – whytheq 2015-04-03 13:03:33