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 查询未给出正确答案的主要内容,如果未能解决你的问题,请参考以下文章