0
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)을 표시합니다."And"대신 집합을 사용하도록이 MDX 쿼리를 재구성 할 수 있습니까?
바구니 분석을 수행 한 쿼리에서 계산 된 멤버를 기반으로했습니다. 세트 {[Item]. [ItemNumber]와 함께 쓰는 방법이 있어야한다고 생각합니다. & [011074], [Item]. [ItemNumber]. & [011069]} 대신에 두 개의 IsEmpty 테스트가 있습니다. 내가 시도한 모든 것이 결과에 모든 고객을 보유하게 만들었습니다.
내 환경은 SQL Server Analysis Services 2005입니다.