2014-11-21 16 views
0

我有以下工作MDX查詢。問題出在TOPCOUNT,我使用一個案例聲明來計算我的數量。SSRS MDX數據集需要動態字段來源,是否有解決方法?

INVESTOR,ADVISER和ADVISERGROUP都是實際上相同的維度鏈接到不同的字段在一個事實表,即顧問它將是Entity.IDKey - > Fact.AdviserKey或投資者其實體.IDKey - > Fact.InvestorKey

所以問題是所有將返回相同的字段名稱,[ID KEY]但會有不同的位置,即數據集字段源定義需要不同。

在SSRS中,它僅適用於一種情況,即它在設計時運行的情況,對其他情況不正確。 有沒有辦法解決這個問題?

WITH MEMBER [Measures].[Previous Period] as 
( [Measures].[Fact TOL Activity Count] , 
ParallelPeriod(
     IIF(@GroupBy = 'Y', [Date].[Fiscal].[Fiscal Year],IIF(@GroupBy = 'Q' , [Date].[Fiscal].[Fiscal Quarter], [Date].[Fiscal].[Fiscal Month])) 
    , 1 
    ,[Date].[Fiscal].CurrentMember)) 


MEMBER [Measures].[Current Period] as [Measures].[Fact TOL Activity Count] 

MEMBER [Measures].[CPeriod] as [Date].[Fiscal].CurrentMember.Name 

MEMBER [Measures].[PPeriod] as 
ParallelPeriod(
     IIF(@GroupBy = 'Y', [Date].[Fiscal].[Fiscal Year], IIF( @GroupBy = 'Q' , [Date].[Fiscal].[Fiscal Quarter], [Date].[Fiscal].[Fiscal Month])) 
    , 1 
    ,[Date].[Fiscal].CurrentMember).Name 

MEMBER [Measures].[Growth] as 

IIF (ISEMPTY([Measures].[Previous Period]), 0 , 
[Measures].[Fact TOL Activity Count]/ [Measures].[Previous Period]), FORMAT = "Percent" 


SELECT 
{ 
    [Measures].[Previous Period], [Measures].[Current Period], [Measures].[Growth], [Measures].[PPeriod],[Measures].[CPeriod] 

} ON COLUMNS, 


( TopCount(
    Except({ 

    CASE [Dim User Type].[User Type Key].CurrentMember.NAME 
      WHEN "Adviser" THEN [ADVISER].[ID Key].children 
      WHEN "Firm" THEN [ADVISERGROUP].[ID Key].children 
      WHEN "Investor" THEN [INVESTOR].[ID Key].children 
      ELSE [INVESTMENTMANAGER].[ID Key].children 
    END 

    } , 

    CASE [Dim User Type].[User Type Key].CurrentMember.NAME 
      WHEN "Adviser" THEN [ADVISER].[ID Key].[Unknown] 
      WHEN "Firm" THEN [ADVISERGROUP].[ID Key].[Unknown] 
      WHEN "Investor" THEN [INVESTOR].[ID Key].[Unknown] 
      ELSE [INVESTMENTMANAGER].[ID Key].[Unknown] 
    END 
) 

, 10 
, ( [Measures].[Growth], STRTOMEMBER(@CurrentPeriod, CONSTRAINED), [Dim EVENTTYPE].[IASEVENTTYPEKEY].&[ET00000040], STRTOMEMBER(@UserTypeKey, CONSTRAINED)) 
    )) on rows 


FROM [TOL Metrics Usage] 

where ([Dim EVENTTYPE].[IASEVENTTYPEKEY].&[ET00000040], STRTOMEMBER(@UserTypeKey, CONSTRAINED), STRTOMEMBER(@CurrentPeriod, CONSTRAINED)) 

回答

0

您有@UserTypeKey作爲參數。因此,您可以根據此參數將您的定位基於報表。

如果您想根據名稱進行過濾,並且不想僅爲名稱創建另一個數據集,則還可以添加另一個計算成員。

MEMBER [Measures].[UserTypeKeyName] AS [Dim User Type].[User Type Key].CurrentMember.NAME 
相關問題