我想在不同的行上获得两个不同的topcounts,猜猜我在某处想错了?
select{
([Measures].[Invoiced_DAm])
} on columns,
topcount(
[07 Prod].[Product_Descr].children
,10
,([Measures].[Invoiced_DAm], [19 Time].[Tr Year].&[2008])
),
topcount(
[07 Prod].[Product_Descr].children
,10
,([Measures].[Invoiced_DAm], [19 Time].[Tr Year].&[2009])
) on rows
答案 0 :(得分:1)
如何让它工作只需在花括号{ }
:
select{
([Measures].[Invoiced_DAm])
} on columns,
{
topcount(
[07 Prod].[Product_Descr].children
,10
,([Measures].[Invoiced_DAm], [19 Time].[Tr Year].&[2008])
),
topcount(
[07 Prod].[Product_Descr].children
,10
,([Measures].[Invoiced_DAm], [19 Time].[Tr Year].&[2009])
)
} on rows
为什么呢?因为它是MDX区分集合的方式:我们需要在明确列出元组的任何时候用大括号包围元组。 TOPCOUNT函数将返回(在本例中)Product维度中的前10个元组。
在您的情况下,TOPCOUNT(...), TOPCOUNT(...)
对MDX没有任何意义(两组或元组列表,以逗号分隔)。
{TOPCOUNT(...), TOPCOUNT(...)}
将告诉MDX您要显示来自两个TOPCOUNT语句的行集,因此您声明了一组集合,这本身就是一个集合。