Quantcast
Channel: SharePoint 2010 - General Discussions and Questions forum
Viewing all articles
Browse latest Browse all 17574

MDX Query and Parameters For Analytical Grid

$
0
0

I'm looking to move a series of reports from SSRS to Performance Point dashboards and had a question about MDX queries and parameters.

Here is one of the MDX queries:

WITH 

MEMBER [Time].[Year - Month].[YTD] AS AGGREGATE(YTD(StrToMember(@SelectedMonth, CONSTRAINED)))

--< We need to OT over the individual months in YTD >--
MEMBER [Measures].[Overtime Hours] AS 
  IIF([Time].[Year - Month].CurrentMember = StrToMember(@SelectedMonth, CONSTRAINED), 
    [Measures].[Employee Overtime Hours], 
    SUM(YTD(StrToMember(@SelectedMonth, CONSTRAINED)), [Measures].[CALCED OT]))

MEMBER [Measures].[Overtime Hours %] AS '[Measures].[Overtime Hours] / [Measures].[Available Hours minus PTO]'
	
SELECT 
  {
    [Measures].[Employee Hours],
    [Measures].[Employee Hours %],
    [Measures].[Overtime Hours],
    [Measures].[Overtime Hours %],
    [MEasures].[Available Hours]
  } ON COLUMNS,
  NON EMPTY CROSSJOIN(
    FILTER(
IIF(@SelectedDiscipline = @SelectedDepartment,
      DESCENDANTS(StrToMember(@SelectedDiscipline, CONSTRAINED), [Employee].[DISC - DEPT - EMP].[Department], AFTER),
      DESCENDANTS(StrToMember(@SelectedDepartment, CONSTRAINED), [Employee].[DISC - DEPT - EMP].[Department], AFTER)
), 
      NOT INSTR([Employee].[Department].CurrentMember.MEMBER_NAME, "Freelance")),
    [Employee].[Employee Bill Rate].[Employee Bill Rate].ALLMEMBERS,
    [Employee].[Employee Level].[Employee Level].ALLMEMBERS,
    {
                	-- PTO Utilization Category excluded
		-- PRODUCTION Utiltization Category included with detail
		CROSSJOIN(
			{[Employee Hours Time Category].[Utilization Category].[Utilization Category].&[PRODUCTION]},
			[Employee Hours Time Category].[Time Category].[Time Category].ALLMEMBERS),
		-- ADMIN Utiltization Category rolled-up witout detail
		CROSSJOIN(
			{[Employee Hours Time Category].[Utilization Category].[Utilization Category].&[ADMIN]},
			{[Employee Hours Time Category].[Time Category].[Admin]})
                   },
                   {StrToMember(@SelectedMonth, CONSTRAINED), [Time].[Year - Month].[YTD]}
          ) DIMENSION PROPERTIES MEMBER_CAPTION, MEMBER_UNIQUE_NAME ON ROWS
FROM [OLSON BI] 
CELL PROPERTIES 
  VALUE
,BACK_COLOR
,FORE_COLOR
,FORMATTED_VALUE
,FORMAT_STRING
,FONT_NAME
,FONT_SIZE
,FONT_FLAGS;

As you can see, there are four parameters: @SelectedDiscipline, @SelectedDepartment, @SelectedMonth, and @SelectedYear.

Within the SSRS report, the available values are derived from shared datasets.

My question is how do parameters work in a Performance Point chart/grid and how can I still leverage the shared datasets that comprise the parameters. The datasets are MDX queries. For example, here is the MDX for the @SelectedYear parameter's default values:

SELECT 'Calendar ' + CONVERT(varchar(4), YEAR(CurrentDate)) AS CurrentCalendarYear, 
     '[Time].[Year - Month].[Year].&[' + CONVERT(varchar(4), YEAR(CurrentDate)) + '-01-01T00:00:00]' AS CurrentCalendarYearMDX, 
     '[Time].[Year -  Half Year -  Quarter -  Month -  Date].[Year].&[' + CONVERT(varchar(4), 
     YEAR(CurrentDate)) + '-01-01T00:00:00]' AS CurrentCalendarYearExMDX, CAST(DATENAME(month, 
     CurrentDate) AS varchar(10)) + ' ' + CONVERT(varchar(4), YEAR(CurrentDate)) AS CurrentMonth, 
     '[Time].[Year - Month].[Month].&[' + CONVERT(varchar(4), YEAR(CurrentDate)) + '-' + RIGHT('0' + CONVERT(varchar(2), MONTH(CurrentDate)), 2) + '-01T00:00:00]' AS CurrentMonthMDX, 
     '[Time].[Year -  Half Year -  Quarter -  Month -  Date].[Month].&[' + CONVERT(varchar(4), 
     YEAR(CurrentDate)) + '-' + RIGHT('0' + CONVERT(varchar(2), MONTH(CurrentDate)), 2) + '-01T00:00:00]' AS CurrentMonthExMDX, 'Calendar ' + CAST(YEAR(LastMonth) AS varchar(5)) 
     AS PreviousMonthCalendarYear, '[Time].[Year - Month].[Year].&[' + CONVERT(varchar(4), 
     YEAR(LastMonth)) + '-01-01T00:00:00]' AS PreviousMonthCalendarYearMDX, 
     '[Time].[Year -  Half Year -  Quarter -  Month -  Date].[Year].&[' + CONVERT(varchar(4), 
     YEAR(LastMonth)) + '-01-01T00:00:00]' AS PreviousMonthCalendarYearExMDX, 
     CAST(DATENAME(month, LastMonth) AS varchar(10)) + ' ' + CAST(YEAR(LastMonth) AS varchar(5)) 
     AS PreviousMonth, '[Time].[Year - Month].[Month].&[' + CONVERT(varchar(4), YEAR(LastMonth)) + '-' + RIGHT('0' + CONVERT(varchar(2), MONTH(LastMonth)), 2) + '-01T00:00:00]' AS PreviousMonthMDX, 
     '[Time].[Year -  Half Year -  Quarter -  Month -  Date].[Month].&[' + CONVERT(varchar(4), 
     YEAR(LastMonth)) + '-' + RIGHT('0' + CONVERT(varchar(2), MONTH(LastMonth)), 2) + '-01T00:00:00]' AS PreviousMonthExMDX
FROM (SELECT GETDATE() AS CurrentDate, DATEADD(month, - 1, GETDATE()) AS LastMonth) AS d

Any help would be appreciated!


A. M. Robinson


Viewing all articles
Browse latest Browse all 17574

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>