如何利用MDX查询找到每一年的销量最大的月?

0
cube的情况如下。

QQ截图20141001230139.png


想利用MDX查询找到2010和2011每个店铺的销量最大的月? 写了如下的MDX查询

With Member [Measures].xx AS
MAX({([日期].[Y-M].[Month])},[Measures].[Sale Amount])
SELECT [Measures].xx ON 0,
{([日期].[Year].&[2010],[Dim Shop].[Shop Name].children),([日期].[Year].&[2011],[Dim Shop].[Shop Name].children)}on 1
FROM BI;

得出的结果如下

QQ图片20141001230831.jpg


根据前面cube的信息,显然是不正确的。比如2010年“今麦郎饮品 ”没有销量。 似乎MAX函数只是找了所有月份的最大值,而没有限定年。 日期我建立了层次关系如下:

QQ截图20141001231227.png

有谁能给指点一下啊,如何写这个MDX的查询啊。
已邀请:
1

zengxinwen 2015-09-18 回答

使用 generate 函数
 
select  generate (  {日期].[Y-M].[Year].members},
 
topcount( [日期].[Y-M].[year].currentmember.children,  1,度量值) on  0,
 
{度量值集合}   on 0
 
from BI,
 
generate 可以迭代第一个集的成员,第二段,你可以对每一个成员求 子成员 如果子成员刚好是月份的话。
 
 
 
 
,
 
 

要回复问题请先登录注册