不如先组合一个Order(),让你的产品按照它们的肉的百分比来分类,然后再根据它们的累计重量来过滤它们?
在[Adventure Works]中,以下代码显示了累计销售额低于某个特定值的订购量最大的山地车:
with
set [mbikes] as order( [Product].[Product Categories].[mountain bikes].children, [order count], BDESC )
select
{ [order count], [sales amount] } on 0,
filter( [mbikes], sum( subset( [mbikes], 0, [mbikes].currentOrdinal ), [sales amount] ) < (8 * 1000 * 1000) ) on 1
from [adventure works]
Order Count Sales Amount
Mountain-200 Black, 38 743 $2,589,363.78
Mountain-200 Black, 42 671 $2,265,485.38
Mountain-200 Silver, 38 641 $2,160,981.60