如果我执行以下操作,那么2007年和2008年的整个客户部分都是(空)互联网销售额 - 这是为什么?如何使用EXISTS
过滤仅在选择
注意:年份的选择可能会有所不同,因此InitialSet
需要具有上下文感知能力,因此我使用了[Date].[Calendar Weeks].CURRENTMEMBER
和EXISTS函数。
WITH
SET [InitialSet] AS
EXISTS(
{[Customer].[Customer].[Customer].MEMBERS},
[Date].[Calendar Weeks].CURRENTMEMBER,
'Internet Sales'
)
SET [OrderedSet] AS
NONEMPTY
(
ORDER
(
[InitialSet],
[Measures].[Internet Sales Amount],
BDESC
)
,([Measures].[Internet Sales Amount],[Date].[Calendar Weeks].CURRENTMEMBER)
)
SELECT
{
[Date].[Calendar Weeks].[Calendar Year].&[2007],
[Date].[Calendar Weeks].[Calendar Year].&[2008]
} ON 0,
[OrderedSet] ON 1
FROM [Adventure Works]
WHERE (
[Measures].[Internet Sales Amount]
);
答案 0 :(得分:1)
Analysis Services通过考虑WHERE子句但不使用任何行或列设置来评估集合。如果您只想评估2007年和2008年的集合,则必须说明。
实际上,第一个集合中的[Date].[Calendar Weeks].CURRENTMEMBER
将引用[Date].[Calendar Weeks]
层次结构的默认成员,即All
成员。