報表參數:開始日期、結束日期。需求:
WITH
-- 當前區間集合
SET CurrentPeriod AS
{[Date].[Calendar].[Date].&[@StartDate] : [Date].[Calendar].[Date].&[@EndDate]}
-- 上年同期區間集合 (平移 1 年)
SET LastYearPeriod AS
{[Date].[Calendar].[Date].&[@LastYearStart] : [Date].[Calendar].[Date].&[@LastYearEnd]}
MEMBER [Measures].[Sales Current] AS
SUM(CurrentPeriod, [Measures].[Reseller Sales Amount])
MEMBER [Measures].[Sales LastYear] AS
SUM(LastYearPeriod, [Measures].[Reseller Sales Amount])
SELECT
{[Measures].[Sales Current], [Measures].[Sales LastYear]} ON COLUMNS,
NON EMPTY [Product].[Category].[Category].MEMBERS ON ROWS
FROM [Step-by-Step];
| 報表參數 | 類型 | MDX 參數映射 |
|---|---|---|
| @StartDate | DateTime | 格式化 `Format(@StartDate, "yyyyMMdd")` → `&[20040108]` |
| @EndDate | DateTime | 同理 |
| @LastYearStart | 計算字段 | `DateAdd("yyyy", -1, @StartDate)` → 格式化 |
| @LastYearEnd | 計算字段 | `DateAdd("yyyy", -1, @EndDate)` → 格式化 |
=Format(Parameters!StartDate.Value, "yyyyMMdd")
=Format(DateAdd(DateInterval.Year, -1, Parameters!StartDate.Value), "yyyyMMdd")
