MDX 查询未给出正确答案

Posted

技术标签:

【中文标题】MDX 查询未给出正确答案【英文标题】:MDX query not giving right answer 【发布时间】:2012-01-05 12:59:33 【问题描述】:

现在我对不同的 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 报表设计器中使用了两个参数,它们给出了正确的月份和日期值。但是下面的例子解释了这个问题。

我想要一天的循环报价计数。例如:日期为 2012 年 4 月 1 日。但是我也得到了上个月同一天的值..(01-12-2011),因为该值在表格中可用。但我只需要 01-01-2012 的数据..

[Subscriber State].[GrandTotal] 包含我正在过滤的 ACTIVE,GRACE,SUSPEND 之类的值,

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

如果有人知道,请告诉任何解决方案

【问题讨论】:

【参考方案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]
   )
*/

【讨论】:

以上是关于MDX 查询未给出正确答案的主要内容,如果未能解决你的问题,请参考以下文章

字符数组未正确读取输入

使用arguments属性的递归Javascript函数给出了正确的答案,但返回undefined

React Redux表单提交未给出正确的结果

输入正确的答案会给出错误的输出。我该如何解决?

存储过程如果存在不给出正确答案

使用动态规划的背包无法给出正确答案