MDX查询没有给出正确的答案

时间:2012-01-05 12:59:33

标签: mdx pentaho

现在我对不同的MDX qry有不同的问题。

对于当前月份的详细信息,我将获得上个月的详细信息..   我使用的MDX查询是:

/*
SELECT 
NON EMPTY 
    { Hierarchize ( { [Offer].[GrandTotal], [Offer].[GrandTotal].Children }) } 
        ON COLUMNS, 
NON EMPTY 
    { Hierarchize ( { [Circle].[GrandTotal], [Circle].[GrandTotal].Children }) } 
        ON ROWS 
FROM 
    [SCMAircel_ActiveBase] 
WHERE 
  ( [Measures].[TotalCount], 
    [Subscriber State].[GrandTotal], 
    [Time].[2012].[${curMonth}].[${curDay}])
*/

我正在使用两个参数,它在Pentaho Report Designer中提供正确的月份和日期值。但是下面的例子解释了这个问题。

我想要一天的循环商品计数。例如:对于日期04/01/2012。但我也在同一天获得了上个月的价值..(01-12-2011)因为该值可以在桌面上找到。但我只需要01-01-2012数据..

[Subscriber State].[GrandTotal]包含我正在过滤的ACTIVEGRACESUSPEND等值,

我不知道这个价值TOTAL_COUNT是如何加起来的,尽管月份和日期正确传递......

如果有人知道这个

,请告诉任何解决方案

1 个答案:

答案 0 :(得分:1)

我对Pentaho不熟悉,但对SQL Server Analysis Services不熟悉。我假设由于MDX是标准,因此不应存在(m)任何差异;)

我假设结果被展平为二维结果集,数据相应地交叉连接,然后按报表控件进行分组。

所以我建议你应该尝试的是(即使没有进一步调查很难理解你的问题):

/*
SELECT 
    {
        // it is best practice to put measures on columns
        [Measures].[TotalCount]  
    }
    ON COLUMNS, 
    NON EMPTY 
    {
        // if you want multiple dimension to be aggregated, you should cross join these 
        Hierarchize ( { [Offer].[GrandTotal], [Offer].[GrandTotal].Children }) } 
        *    // cross join here
        Hierarchize ( { [Circle].[GrandTotal], [Circle].[GrandTotal].Children }) 
    } 
    ON ROWS 
FROM 
    [SCMAircel_ActiveBase] 
WHERE 
  (
    //[Subscriber State].[GrandTotal], // i don't get this. You either need to filter for certain members, or you want members to be crossjoined. But putting a member hierarchy in filter doesn't make sense to me
    {[Subscriber State].[GrandTotal].[ACTIVE], [Subscriber State].[GrandTotal].[Grace] } // like this for example
    ,[Time].[2012].[${curMonth}].[${curDay}]
   )
*/