MDX에서 WHERE
절이 작동하는 방식을 이해하는 것이 중요합니다. WHERE
절은 행 축을 필터링하지 않고 WHERE
절에 지정된 멤버와 교차하는 축의 차원 멤버를 필터링합니다.
REFERENCE
는 튜플을 지정해야하거나
WHERE
절에 회원으로 설정했다 가졌 :
예
:
WHERE (STRTOMEMBER(@Year))
STRTOMEMBER()
가 포함 된 SSRS 텍스트 매개 변수 (@Year
를) 변환 [Date].[Year].&[2016]
값이 유효한 MDX 멤버입니다. 이 경우 WHERE
절은 날짜 차원에서 2016 년과 교차하는 구성원 축을 필터링합니다.
또한 STRTOSET
을 사용하면 필터에 여러 멤버를 전달할 수 있습니다.
WHERE StrToSet (@Countries, CONSTRAINED)
@Countries
매개 변수는 {[Geography].[Geography].[Country].[Germany],[Geography].[Geography].[Country].[Canada]}
멤버가 포함 된 텍스트 SSRS 매개 변수입니다.
이 경우 WHERE
절은 캐나다와 독일 국가와 교차하는 SELECT 절에 지정된 멤버를 필터링합니다.
업데이트 : OP 피드를 기반으로합니다.
이렇게하면됩니다.
SELECT NON EMPTY { [Measures].[Employee Count] } ON COLUMNS,
NON EMPTY
{
(StrToMember ('[Person].[Emplid].&[123]') * [Person].[First Name].[First Name].AllMembers * [Person].[Last Name].[Last Name].AllMembers)
} Dimension Properties MEMBER_CAPTION,
MEMBER_UNIQUE_NAME ON ROWS
FROM [Model]
주 나는 WHERE
절을 사용하지만, 행 축에있는 멤버를 지정하고 있지 않다.
업데이트 : 나는 WHERE
절을 당신의 requeriment에 적합하지 생각, 그것은 보인다 일부 조건에 따라 일부 멤버를 선택하는 필터 기능을 사용해야합니다.
앞서 말했듯이 WHERE
절은 주어진 멤버와 교차하는 축의 멤버를 필터링합니다. Filter
함수를 사용하여 지정된 기준을 충족하는 멤버를 필터링 할 수 있습니다.FILTER
는 검색 조건에 기초하여 소정의 세트를 필터링의 결과 집합을 반환.
예 : 위의 MDX 쿼리
SELECT NON EMPTY
{
[Measures].[Score %]
,[Measures].[Month Key]
} ON COLUMNS,
NON EMPTY
{
([Date].[YMD].[Month Name].&[201301] : [Date].[YMD].[Month Name].&[201307])
*
FILTER
(
[Customer].[Customer Full Name].[Customer Full Name].members,
[Measures].[Score %] <> null
AND
[Measures].[Score %] <> 0
)
} ON ROWS
FROM [Cube]
주, 월 201307
-201301
및 필터 기능에 지정된 기준을 충족하는 일부 구성원 사이에 crossjoin있다. 이 경우의 기준은 멤버의 Score %
이 null이 될 수 없다는 것입니다. AND
은 0이 될 수 없습니다.
그것은이 같은 것을 생산해야
MonthName Customer Full Name Score % Month Key
201301 Customer1 5% 1000
201301 Customer2 3% 1000
201304 Customer1 8% 3500
201306 Customer1 11% 2200
201307 Customer2 13% 3400
참고 개월 201302, 201303 및 201305이 결과에 존재하지 않는 그 달에 고객이 필터 기준을 충족하지 않기 때문에.
이 정보가 도움이되기를 바랍니다.
WHERE 절에서 EMPLID를 참조하려고 할 때 "이 Emplid 계층 구조가 이미 Axis1 축에 나타납니다." – StevenWhite
MDX를 공유하면 행에 Emplid를 선택하고 필터하려고하는 것 같습니다 slicer where 절. –
'SELECT [EFFTY] {[Measures]. [Employee Count]} 열 번호에 , 비어 있지 않음 {([Person]. [Emplid]. [Emplid] .ALLMEMBERS * [Person]. 이름]. [이름]을 *을 .ALLMEMBERS [사람]. [성]. [성] .ALLMEMBERS)} 치수 특성 MEMBER_CAPTION, [모델] 에서 행 ON MEMBER_UNIQUE_NAME WHERE STRTOMEMBER ('[사람]. [Emplid]. & [123 '')' – StevenWhite