MDX:集合上的聚合

MDX:集合上的聚合,mdx,Mdx,我试图实现的目标看起来很简单,但我无法让它工作。 我的事实是有日期的订单,我有一个“月”和“年”级别的典型时间维度 我想得到一个输出,其中列出了过去6个月的订单数量和总数,如下所示: Oct 2009 20 Nov 2009 30 Dec 2009 25 Jan 2009 15 Feb 2010 45 Mar 2010 5 Total 140 2009年10月20日 2009年11月30日 2009年12月25日 2009年1月15日 2010年2月45日 20

我试图实现的目标看起来很简单,但我无法让它工作。 我的事实是有日期的订单,我有一个“月”和“年”级别的典型时间维度

我想得到一个输出,其中列出了过去6个月的订单数量和总数,如下所示:

Oct 2009 20 Nov 2009 30 Dec 2009 25 Jan 2009 15 Feb 2010 45 Mar 2010 5 Total 140 2009年10月20日 2009年11月30日 2009年12月25日 2009年1月15日 2010年2月45日 2010年3月5日 总数140 我可以在2009年10月至2010年3月期间与成员一起创建集合,并设法获得所需输出的这一部分:

Oct 2009 20 Nov 2009 30 Dec 2009 25 Jan 2009 15 Feb 2010 45 Mar 2010 5 2009年10月20日 2009年11月30日 2009年12月25日 2009年1月15日 2010年2月45日 2010年3月5日
只是我无法获得总行。

您可以通过将ALL成员添加到集合中,然后将其全部包装到VisualTotals()函数中来实现这一点

选择
…在柱子上,
视觉总计(
{[月][月][2009年10月]:[月][月][2010年3月]
,[月][月][全部]}
)成排
从…起

您可以通过将ALL成员添加到集合中,然后将其全部包装到VisualTotals()函数中来实现这一点

选择
…在柱子上,
视觉总计(
{[月][月][2009年10月]:[月][月][2010年3月]
,[月][月][全部]}
)成排
从…起

以下是Adventure Works DW演示多维数据集的一个可能解决方案。查询选择最后6个订单计数,并在日期维度上添加一个总和:

WITH MEMBER [Date].[Calendar].[Last 6 Mth Order Count] AS 
aggregate( 
ClosingPeriod([Date].[Calendar].[Month], [Date].[Calendar].[All Periods]).Lag(6)
: ClosingPeriod([Date].[Calendar].[Month], [Date].[Calendar].[All Periods])

)
SELECT  {[Measures].[Order Count]} ON COLUMNS
, {ClosingPeriod([Date].[Calendar].[Month], [Date].[Calendar].[All Periods]).Lag(6)
: ClosingPeriod([Date].[Calendar].[Month], [Date].[Calendar].[All Periods])
,[Date].[Calendar].[Last 6 Mth Order Count]} 
ON ROWS
FROM [Adventure Works]

以下是Adventure Works DW演示多维数据集的一个可能解决方案。查询选择最后6个订单计数,并在日期维度上添加一个总和:

WITH MEMBER [Date].[Calendar].[Last 6 Mth Order Count] AS 
aggregate( 
ClosingPeriod([Date].[Calendar].[Month], [Date].[Calendar].[All Periods]).Lag(6)
: ClosingPeriod([Date].[Calendar].[Month], [Date].[Calendar].[All Periods])

)
SELECT  {[Measures].[Order Count]} ON COLUMNS
, {ClosingPeriod([Date].[Calendar].[Month], [Date].[Calendar].[All Periods]).Lag(6)
: ClosingPeriod([Date].[Calendar].[Month], [Date].[Calendar].[All Periods])
,[Date].[Calendar].[Last 6 Mth Order Count]} 
ON ROWS
FROM [Adventure Works]

嗨,Darren!很抱歉,这对我不起作用。最让我困惑的是:尝试以下两个查询1.在列上选择{[Measures].[Sales Count]},在[Sales]中的行上选择非空的VisualTotals(Hierarchize({[Customers].[All Customers].[USA].[OR].[All Customers].[USA].[OR].[OR Albany].[Children}),“*”)。从[Sales]中选择{[Measures].[Sales Count]}在列上,在[Sales]行上的非空层次结构({[Customers].[All Customers].[USA].[OR].[Customers].[Albany].[USA].[OR].[Albany].CHILDERS})上无论是否使用VISUALTOTALS,您都会得到相同的结果。这是因为您正在显示可见成员的所有子成员。因此,行轴上没有与“不可见”成员相关的金额。如果您在[Customers].[all Customers].[USA].[OR]之后取消.children呼叫.Children-您将看到第一个查询将更改为仅显示[OR]级别的[Albany]金额。嗨,Darren!对不起,这对我不起作用。最让我困惑的是:尝试以下两个查询1.在列上选择{[Measures].[Sales Count]},非空VisualTotals(分层({[Customers].[All Customers].[USA])。[Sales]2中的行上有[OR].[Customers].[All Customers].[USA].[OR].[Albany].[Children}),“*”)。在列上选择{[Measures].[Sales Count]},在[Sales]中的行上选择非空层次结构({[Customers].[All Customers].[USA].[OR].[Children].[All Customers].[Albany].[USA].[OR])无论是否使用VISUALTOTALS,您都会得到相同的结果。这是因为您正在显示可见成员的所有子成员。因此,行轴上没有与“不可见”成员相关的金额。如果您在[Customers].[all Customers].[USA].[OR]之后取消.children呼叫.Children-您将看到第一个查询将更改为仅显示[OR]级别的[Albany]金额。