我正在尝试通过Adenture Works多维数据集(我设法使用Analysis Services教程编译的多维数据集)从互联网销售中选择前十大产品,我设法完美地完成了多维数据集,现在我需要添加一个过滤器添加特定的产品系列和给定的月份,我不知道如何构建查询...
我有这个工作:
with
set productNames as head(order({[Product].[Model Name].children}, [Measures].[Internet Sales-Unit Price], desc), 10)
select [Measures].[Internet Sales-Unit Price] on 0,
productNames on 1
from [Analysis Services Tutorial]
我添加了过滤器,结果是一样的......
with
set productNames as head(order(
filter({[Product].[Model Name].children},[Product].[Product Model Lines].[Product Line].&[R] )
, [Measures].[Internet Sales-Unit Price], desc), 10)
select [Measures].[Internet Sales-Unit Price] on 0,
productNames on 1
from [Analysis Services Tutorial];
注意:我不能使用层次结构,因为在我的生产数据库(这不是冒险工程)我没有为给定问题设置层次结构。
答案 0 :(得分:2)
看看这个查询:
SELECT
[Measures].[Internet Sales Amount] ON COLUMNS
, TOPCOUNT([Product].[Product Line].&[R]*[Product].[Model Name].[Model Name],10,[Measures].[Internet Sales Amount]) ON ROWS
FROM
[Adventure Works]
FILTER功能用于过滤符合特定条件的一组成员,例如销售额超过1000英镑。它不适合过滤其他维度或属性的集合。为此,您可以像我上面所做的那样使用CROSSJOIN(*)以及NONEMPTY函数。
我希望有所帮助,
灰