문제

나는 상위 10 개의 zipcodes (내 환자 체류 측정에 따라)를 계산하는 MDX 쿼리를 만들었습니다.

WITH
MEMBER [Discharge Date].[Y-M-D].[ Aggregation] AS 'AGGREGATE( EXISTING { [Current Month] } )', SOLVE_ORDER = 0

SELECT
NON EMPTY { [Measures].[Patient Stays] }
ON COLUMNS,

TOPCOUNT({ ORDER( HIERARCHIZE( { [Patient].[ByZipcode].[All].CHILDREN } ), ( [Measures].[Patient Stays] ), BDESC ) }, 10)
ON ROWS

FROM [Patient Stay]

WHERE ( [Discharge Date].[Y-M-D].[ Aggregation], [Facility].[ByAffiliation].CURRENTMEMBER, [Facility].[ByRegion].CURRENTMEMBER )

이 쿼리는 PerformancePoint 100% 스택 막대 차트를 채우는 데 사용됩니다. 클라이언트는 이것이! 00% 기반 차트이기 때문에 나머지 우편 번호를 "기타"필드로 묶어 11 값이 있어야합니다. 나머지 우편 번호의 합입니다.

나는 MDX에 극도의 초보자이지만, 불가능한 것처럼 보이지는 않습니다. 누구든지 아이디어 나 제안이 있습니까?

도움이 되었습니까?

해결책

테스트되지 않은 코드로 최선을 다하겠습니다.

WITH
MEMBER [Discharge Date].[Y-M-D].[ Aggregation] AS 'AGGREGATE( EXISTING { [Current Month] } )', SOLVE_ORDER = 0

SET [Top10ZipCodes] AS 
    (TOPCOUNT({ ORDER( HIERARCHIZE( { [Patient].[ByZipcode].[All].CHILDREN } ), ( [Measures].[Patient Stays] ), BDESC ) }, 10))

MEMBER [Patient].[ByZipCode].[OtherZipCodes] AS 
    (AGGREGATE({EXCEPT([Patient].[ByZipCode].Members, [Patient].[ByZipCode].[Top10ZipCodes])}))

SELECT
NON EMPTY { [Measures].[Patient Stays] }
ON COLUMNS,

{[Top10ZipCodes], [Patient].[ByZipCode].[OtherZipCodes]}
ON ROWS

FROM [Patient Stay]

WHERE ( [Discharge Date].[Y-M-D].[ Aggregation], [Facility].[ByAffiliation].CURRENTMEMBER, [Facility].[ByRegion].CURRENTMEMBER )

이것이하는 일은 상위 10 개의 우편 번호 세트를 생성 한 다음 Top 10을 제외하고 모든 우편 번호를 집계 (합계와 다릅니다)를 생성하는 것입니다.

또한 이것이 공통 세트 (상위 10 개 우편 번호) 인 경우 큐브에서 세트를 만들고, 모든 MDX 쿼리를 변경하지 않고도 광고 구역을 재사용 할 수 있습니다.

건배,
에릭

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top