Ssas 如何在MDX查询中获得特定三天内售出的前三项商品?

Ssas 如何在MDX查询中获得特定三天内售出的前三项商品?,ssas,mdx,olap,olap-cube,Ssas,Mdx,Olap,Olap Cube,这是我的MDX查询。这将显示在特定三天内售出的商品。此查询返回所有已售出的商品,但我只希望在特定日期获得前三名商品 我怎样才能得到这个?以下是我的MDX查询: select { [Measures].[Quantity], [Measures].[Net Sales] } on columns, NON EMPTY ORDER ( ( [Products].[Item Description].children ), [Measur

这是我的MDX查询。这将显示在特定三天内售出的商品。此查询返回所有已售出的商品,但我只希望在特定日期获得前三名商品

我怎样才能得到这个?以下是我的MDX查询:

select
{
    [Measures].[Quantity],
    [Measures].[Net Sales]
}
on columns,
NON EMPTY
ORDER
(
    (
        [Products].[Item Description].children    
    ),
    [Measures].[Quantity], DESC
)
    * [Calendar].[Date].[Date]
on rows
from
(
select 
{
    [Calendar].[Date].&[2015-03-23T00:00:00],
    [Calendar].[Date].&[2015-03-22T00:00:00],
    [Calendar].[Date].&[2015-03-21T00:00:00]
}
ON columns

FROM [SalesReport])
使用TopCount功能,如下所示:

select
{
    [Measures].[Quantity],
    [Measures].[Net Sales]
}
on columns,
NON EMPTY
TopCount([Products].[Item Description].children * [Calendar].[Date].[Date], 
        3,
        [Measures].[Quantity])      
on rows
from
(
select 
{
    [Calendar].[Date].&[2015-03-23T00:00:00],
    [Calendar].[Date].&[2015-03-22T00:00:00],
    [Calendar].[Date].&[2015-03-21T00:00:00]
}
ON columns

FROM [SalesReport])
要获取每个日期的前3条记录,您可以使用“生成”功能:

select
{
    [Measures].[Quantity],
    [Measures].[Net Sales]
}
on columns,
NON EMPTY
GENERATE([Calendar].[Date].[Date],  
        TopCount([Products].[Item Description].children, 
                3,
                [Measures].[Quantity])  
        )   
on rows
from
(
select 
{
    [Calendar].[Date].&[2015-03-23T00:00:00],
    [Calendar].[Date].&[2015-03-22T00:00:00],
    [Calendar].[Date].&[2015-03-21T00:00:00]
}
ON columns

FROM [SalesReport])

苏拉夫,太好了。这显示了所有这些天的前3项。我们能在3月23日、24日和25日买到前三名的商品吗?例如,3月23日第1项第2项第3项3月24日第1项。。。。这样地!我会做一个编辑。以后,请把所有的问题集中起来,或者问一个新问题。不要再问同一个问题了。对不起!那是我的错误。我能补充一个新问题吗?或者这就足够了吗?没关系。以后请按照惯例去做。当然!再次抱歉!:-