现在我对不同的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]
包含我正在过滤的ACTIVE
,GRACE
,SUSPEND
等值,
我不知道这个价值TOTAL_COUNT
是如何加起来的,尽管月份和日期正确传递......
如果有人知道这个
,请告诉任何解决方案答案 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}]
)
*/