2011-09-12 2 views
0

나는 MDX 지침을 찾고있는 상황이 있습니다.두 번째 MDX 쿼리는 첫 번째 MDX 쿼리에서 반환 한 각 행에 대한 결과를 반환해야합니다.

환경 : SQL 서버 2008 R2, SSRS 2008 R2

차원 : 열 DimMainProvider :에는 ProviderName DimAcademicYear : AcademicYear DimSectorSubjectArea : Estyn DimLearningAim : LearningAimReference

사실 : 열 교훈 : MainProviderKey, AgeBandKey , LearningAimKey, SuccessFlag

원하는 항목은 입니다. 1) 특정 MainProvider의 경우 Top 1 가져 오기 0 LearningAims 성공률로 표시하고 테이블 릭스 에 표시하십시오. 2) tablix의 각 행에 대해서도 모든 주 공급자가 해당 LearningAim의 최소값, 최대 값, 1 분위, 3 분위 값을 기본적으로 필요로하는 박스 플롯 그래프도 표시합니다.

내가 가진 것 은 2 MDX 쿼리

a)는 홈페이지 제공자 아래 MDX의 (간체 버전)에 대한 상위 10 개 활동을 얻는다 하나

WITH 
SET Top10LearningAimsForSuccessRate 
AS 
NonEmpty(
     TOPCOUNT([ReportedLearningAims],10,[Measures].[SuccessRate]), 
     [Measures].[SuccessRate] 
     ) 
SELECT 
    { 
     [Measures].[SuccessRate] 
    } ON COLUMNS 

,NON EMPTY 
    { 
     EXISTS( 
       Top10LearningAimsForSuccessRate 
       ,,"Learnings") 
    } ON ROWS 
FROM 
(

SELECT {[Measures].[TerminatedAssessableLASum] 
    ,[Measures].[SuccessfulLASum]} ON COLUMNS 
    ,{(StrToSet("[DimMainProvider].[ProviderName].&[44]",CONSTRAINED))} On ROWS 
FROM [FECube] 
) 
WHERE 
    (StrToSet("[DimAcademicYear].[AcademicYear].[AcademicYear].[2009/10]",CONSTRAINED), 
    StrToSet("[DimSectorSubjectArea].[Estyn].&[2]",CONSTRAINED) 
) 

b)는 매개 변수로 LearningAim를 받아 통계 계산을 수행하고 나에게주는 또 다른 쿼리는 내 원래 아이디어는 각각 2 쿼리를 발사하는 것입니다

WITH 
SET ProviderwideLearningAims 
AS 
ORDER(
     NonEmpty([DimMainProvider].[ProviderName].[ProviderName], 
        [Measures].[SuccessRate] 
       ) 
     ,[Measures].[SuccessRate],BASC   
    ) 

MEMBER [Measures].[MaxValue] 
AS 
Max(ProviderwideLearningAims,[SuccessRate]),FORMAT_STRING = "Percent" 

MEMBER [Measures].[MinValue] 
AS 
Min(ProviderwideLearningAims,[SuccessRate]),FORMAT_STRING = "Percent" 

MEMBER [Measures].[MedianValue] 
AS 
Median(ProviderwideLearningAims,[SuccessRate]),FORMAT_STRING = "Percent" 


Member [Measures].[ProviderCount] As [ProviderwideLearningAims].Count 

MEMBER [Measures].[MeanValue] 
AS 
(SUM(ProviderwideLearningAims,[SuccessRate])/[Measures].[ProviderCount]),FORMAT_STRING = "Percent" 


MEMBER [Measures].[LearningAimUniqueName] 
AS 
[DimLearningAim].[LearningAimReference].CurrentMember.UniqueName         

Select 
     {  [Measures].[LearningAimUniqueName] 
      ,[Measures].[MinValue]  
      ,[Measures].[MaxValue] 
      ,[Measures].[MedianValue] 
      ,[Measures].[MeanValue] 

     } ON COLUMNS, 

     { 
     NonEmpty([DimLearningAim].[LearningAimReference].[LearningAimReference],ProviderwideLearningAims) 
     } ON ROWS 
FROM 
(
    SELECT 
    StrToSet("[DimLearningAim].[LearningAimReference].&[50024991]",CONSTRAINED) ON COLUMNS 
    FROM [FECube] 
    ) 
WHERE 
    (StrToSet("[DimAcademicYear].[AcademicYear].[AcademicYear].[2009/10]",CONSTRAINED), 
    StrToSet("[DimSectorSubjectArea].[Estyn].&[2]",CONSTRAINED) 

) 

아래 MDX)의 (간체 버전 값 학습 목표는 첫 번째 쿼리에서 을 받았지만 SSRS Dataset 모델에서이를 구현할 수 없습니다. 이제 MDX 수준으로 돌아가서 어떻게 든이 두 가지를 병합하고 싶습니다. 내가 MSDN 포럼에 디팍 푸리의 도움으로 해결 방법은 다음과

답변

0

이다

세트 [Top10LearningAims] TOPCOUNT로 (

필터와

(([ReportedLearningAims] * [DimMainProvider]. 에는 ProviderName] .MEMBERS), DimMainProvider]. [에는 ProviderName] .CURRENTMEMBER 는 STRTOMEMBER (IS "[DimMainProvider]. [에는 ProviderName]. & [44]")) 10 [측정]. TerminatedAssessableLASum] )

구성원 [측정 값]. [MaxValue] AS 최대 (NonEmpty ([DimMainProvider]. [ProviderName]. [ProviderName], [측정 값]. [SuccessRate]), [측정 값]. [SuccessRate]), FORMAT_STRING = "퍼센트"멤버 [측정 값]. [최소값] AS 최소 (NonEmpty ([DimMainProvider]. [ProviderName]. [ProviderName], [Measures]. [SuccessRate]), [Measures]. [SuccessRate]), FORMAT_STRING = "퍼센트"멤버 [측정 값]. [MedianValue] AS 중간 값 (NonEmpty ([DimMainProvider]. [ProviderName]. [ProviderName], [Measures]. [SuccessRate]), [Measures].[SuccessRate), FORMAT_STRING = "퍼센트"

MEMBER [측정]. MeanValue] AS AVG (비어 있지 ([DimMainProvider]. [에는 ProviderName]. [에는 ProviderName] [측정]. SuccessRate]) [측정]. SuccessRate), FORMAT_STRING = "퍼센트"

회원 [측정]. ProviderCount] 카운트 등 (비어 있지 ([DimMainProvider]. [에는 ProviderName]. [에는 ProviderName] [측정] [Measures]. [PercentileInt25] as Int (((Measures). [ProviderCount] - 1) * 25)/100) 멤버 [측정 값]. [PercentileFrac25] as (([측정 값] ] [ProviderCou25]/100 [Measures]. [PercentileInt25] 구성원 [측정 값]. [PercentileLo25]을 ([Measures]. [SuccessRate], ) 순으로 정렬합니다 (NonEmpty ([DimMainProvider]. [ProviderName, [Measures]. [SuccessRate], [Measures]. [SuccessRate], BASC) .Item ([측정 값] [PercentileInt25]) 항목 (0)), FORMAT_STRING = "백분율 "[Measures]. [SuccessRate], 주문 (NonEmpty ([DimMainProvider]. [ProviderName]. [ProviderName], [측정 값]. [SuccessRate])으로 [Measures]. [PercentileHi25] (Measures). [PercentileInt25] + 1) .Item (0)), FORMAT_STRING = "퍼센트"멤버 [Measures]. [Percentile25Value]를 0으로 설정하십시오. + ([Measures]. [PercentileHi25] * [Measures]. [PercentileFrac25]), FORMAT_STRING = "PercentileLo25"* [측정 값] [PercentileLo25] * (1 - [측정 값] [PercentileFrac25] 측정 값] [PercentileInt75] as Int (([Measures]. [ProviderCount] - 1) * 75)/100) 멤버 [측정 값]. [PercentileFrac75] [Measures]. [PercentileInt75] 구성원 수 [Measures]. [PercentileLo75]로 ([Measures]. [SuccessRate], ) 순으로 정렬 (NonEmpty ([DimMainProvider]. [ProviderName]. [ProviderName] ,"(조치). [성공 사례], [조치]. [성공 사례]([Measures]. [SuccessRate]), 주문으로 (NonEmpty ([DimMainProvider]. [ProviderName]. [ProviderName], [Measures]. [SuccessRate]), [Measures]. [PercentileHi75] FORMAT_STRING = "퍼센트"멤버 [Measures]. [Percentile75Value]를 ([Measures])로 지정하십시오. [SuccessRate], BASC) .Item ([Measures]. [PercentileInt75] + 1) .Item (0) [PercentileLo75 * (1 - [측정] [PercentileFrac75].)) + ([측정] [PercentileHi75] * [측정] [PercentileFrac75), FORMAT_STRING = "퍼센트"

선택 {[측정한다.. ]. [TerminatedAssessableLASum] , [측정 값]. [SuccessfulLASum] , [Measu 입술]. SuccessRate] [측정]. SectorTerminatedAssessableLASum] [측정]. SectorSuccessfulLASum] [측정]. SectorSuccessRate] [측정]. ProviderCount], [측정]. MINVALUE]
[측정]. MAXVALUE], [측정]. MeanValue]
[측정]. Percentile25Value], [측정]. MedianValue]
[측정]. Percentile75Value]} COLUMNS에 EXETS (NonEmpty ([DimensioningAim]. [LearningAimReference]. [학습 참고 문헌 참조], [DimensionAction], [LearningAimTitle]. [LearningAimTitle]), [Top10LearningAims], [Measures]. [SuccessRate]) * NonEmpty ([DimMainProvider ]. [ProviderName]. [ProviderName], [Measures].[SuccessRate]) ,, WHERE
(StrToSet ("[DimAcademicYear]. AcademicYear]. AcademicYear]. [2009/10]"제약) FECube에서 ROWS ON "교훈") 치수 특성 MEMBER_CAPTION, MEMBER_UNIQUE_NAME을StrToSet ("[DimLearnerEthnicity]. [Ethnicity]) [StrToSet ("[DimLearnerAgeBand]. [제한])StrToSet ("[DimDeprivationDecile] [Decile]. [모두]", 제한됨), StrToSet ("[DimLearnerGender]. [성별]. [전체]", 제한), StrToSet StrToSet ("[DimSectorSubjectArea]. [Estyn]. & [2]", 제한됨), StrToSet ("[DimLearningActivityLevel]. [ActivityLevel]. [모두]", CONSTRA 이네) StrToSet ("[DimLearningActivityType]. ActivityType]. [전체]"제약)이 ) 셀 속성 값은 BACK_COLOR는 FORE_COLOR는 FORMATTED_VALUE 는 FORMAT_STRING는 font_name의, FONT_SIZE는

을 FONT_FLAGS
관련 문제