2011-09-12 168 views
0

我有一種情況,我正在尋找MDX指導。第二個MDX查詢必須返回第一個MDX查詢返回的每一行的結果

環境:SQL Server 2008 R2中,SSRS 2008 R2

尺寸:列 DimMainProvider:的ProviderName DimAcademicYear:AcademicYear DimSectorSubjectArea:Estyn DimLearningAim:LearningAimReference

事實:列 學習:MainProviderKey,AgeBandKey ,LearningAimKey,SuccessFlag

我想要的是 1)對於特定的MainProvider獲得前1名0 LearningAims的成功率,並顯示在表矩陣 2)有關表矩陣也表明箱線圖基本上需要最小值,最大值,QUARTILE1,特定LearningAim的所有Mainproviders QUARTILE3成功率每行

我有什麼是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作爲參數,並做 統計計算,並給了我另一個查詢值低於 MDX)

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) 

) 

我最初的想法是火每個第二查詢(簡體版學習目標從第一個查詢中收到 ,但我無法在SSRS數據集 模型中執行此操作。 所以現在我回到了MDX級別,並想以某種方式合併這兩個 兩個。

回答

0

這裏是我的幫助修復它從迪帕克·普里在MSDN論壇

設置[Top10LearningAims]作爲TOPCOUNT(

濾波器(([ReportedLearningAims] * [DimMainProvider]。[的ProviderName] .MEMBERS),[DimMainProvider]。[的ProviderName] .CURRENTMEMBER IS STRTOMEMBER( 「[DimMainProvider]。[的ProviderName]。& [44]」)) ,10,[措施]。[TerminatedAssessableLASum] )

MEMBER [Measures]。[MaxValue] AS Max(NonEmpty([DimMainProvider]。[ProviderName]。[ProviderName], [Measures]。[SuccessRate]),[Measures]。[SuccessRate]),FORMAT_STRING = 「Percent」會員[度量]。[MinValue] AS Min(NonEmpty([DimMainProvider]。[ProviderName]。[ProviderName], [Measures]。[SuccessRate]),[Measures]。[SuccessRate]),FORMAT_STRING = 「Percent」成員[度量]。[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], [措施] [(SuccessRate]))Member [Measures]。[PercentileInt25] Int((([Measures]。[ProviderCount] - 1)* 25)/ 100) ] [ProviderCou NT] - 1)* 25)/ 100 - 。。[處理方法] [PercentileInt25]會員[處理方法] [PercentileLo25]如 ([處理方法] [SuccessRate], 訂單(非空([DimMainProvider] [的ProviderName [ProvideName], [Measures]。[SuccessRate]),[Measures]。[SuccessRate], BASC).Item([Measures]。[PercentileInt25])。Item(0)),FORMAT_STRING = 「Percent ([度量]。[SuccessRate], Order(NonEmpty([DimMainProvider]。[ProviderName]。[ProviderName], [Measures]。[SuccessRate]),[Measures] [Member] [Measures]。[PercentileHi25] 。[SuccessRate], BASC).Item([Measures]。[PercentileInt25] + 1).Item(0)),FORMAT_STRING = 「Percent」Member [Measures]。[Percentile25Value] as 0 ([度量]。[百分比25] *(1 - [度量] ([Measures]。[ProviderCount] - 1)[度量]。[PercentileInt75]作爲 Int((([Measures]。[ProviderCount] - 1)* 75)/ 100)成員 [Measures]。[PercentileFrac75] as ([度量值]。[SuccessRate], Order(NonEmpty([DimMainProvider]。[ProviderName]。[ProviderName])[0126] [0] [0128] , [Measures]。[SuccessRate]),[Measures]。[SuccessRate], BASC).Item([Measures]。[PercentileInt75])。Item(0)),FORMAT_STRING = 「P [度量]。[SuccessRate], Order(NonEmpty([DimMainProvider]。[ProviderName]。[ProviderName], [Measures]。[SuccessRate]),[度量值] [[Success], BASC).Item([Measures]。[PercentileInt75] + 1).Item(0)),FORMAT_STRING = 「Percent」成員[Measures]。[Percentile75Value] as ([Measures]。 [PercentileLo75] *(1 - [措施] [PercentileFrac75]。)) +([處理方法] [PercentileHi75] * [措施] [PercentileFrac75]), FORMAT_STRING = 「百分比」

選擇{[度量。 ]。[TerminatedAssessableLASum] ,[Measures]。[SuccessfulLASum] ,[Measu [度量值] ,[度量]。[SectorTerminatedAssessableLASum] ,[Measures]。[SectorSuccessfulLASum] ,[Measures]。[SectorSuccessRate] ,[Measures]。[ProviderCount],[Measures]。[MinValue]
,[措施]。[MaxValue的],[措施]。[MeanValue]
,[措施]。[Percentile25Value],[措施]。[MedianValue]
,[措施]。[Percentile75Value]}上COLUMNS, ([DimLearningAim]。[LearningAimReference]。[LearningAimReference],[DimLearningAim]。[LearningAimTitle]。[LearningAimTitle]),([Top10LearningAims],[Measures]。[SuccessRate]))* NonEmpty([DimMainProvider ]。[ProviderName]。[ProviderName], [Measures]。[SuccessRate]),, 「學習收穫」)維度屬性 MEMBER_CAPTION,MEMBER_UNIQUE_NAME ON從FECube WHERE
(StrToSet( 「[DimAcademicYear]。[AcademicYear]。[AcademicYear] [2009/10]」,約束), ROWS StrToSet(「[DimLearnerAgeBand]。[AgeBand]。[All]」,CONSTRAINED), StrToSet(「[DimLearnerEthnicity]。[EthnicLegnerEthnicity] (「[DimDeprivationDecile]。[Decile]。[All]」,CONSTRAINED), ,[限制], StrToSet(「[DimLearnerGender]。[Gender]。[All]」,CONSTRAINED), StrToSet(「[DimSectorSubjectArea]。[Estyn]。& [2]」,CONSTRAINED), StrToSet(「[DimLearningActivityLevel]。[ActivityLevel]。[All]」,CONSTRA INED) StrToSet( 「[DimLearningActivityType]。[ActivityType]。[全部]」,約束) )電池特性值BACK_COLOR,FORE_COLOR,FORMATTED_VALUE ,FORMAT_STRING,FONT_NAME,FONT_SIZE,FONT_FLAGS