with member [Measures].[BoughtDispenser] as
Sum(Descendants([Customer].[Customer].CurrentMember, [Customer].[Customer]),
Iif(
(IsEmpty(([Item].[ItemNumber].&[011074], [Measures].[Sale Amount]))
And IsEmpty(([Item].[ItemNumber].&[011069], [Measures].[Sale Amount]))
)
Or IsEmpty([Measures].[Sale Amount]),
0 , 1
)
)
select
{[Measures].[Sale Amount]} on columns,
non empty filter([Customer].[Customer].children, [Measures].[BoughtDispenser])
* {[Item].[ItemNumber].members}
on rows
from [Sales]
where [EnteredDate].[Quarter].&[2010-01-01T00:00:00]
;
其目的是显示同时购买了两个分配器(011069和011074)中任何一个的客户所购买的所有商品。
我基于一个查询计算出的成员,我发现做篮子分析。我觉得应该有办法用集合{[Item].[ItemNumber]来编写它[011074],[项目].[项目编号]。&[011069]}而不是两个IsEmpty测试。我尝试过的每一件事最终都有了每一位顾客。
我的环境是SQL Server Analysis Services 2005。