Я хочу вернуть значения YTD (т.е. январь к текущему периоду) для ряда периодов (например, с марта 2012 года по январь 2013 года). Однако понятно, что когда я применяю условие where, чтобы ограничить его «мар 2012 - январь 2013», мы теряем значения января и февраля с начала года. Ниже приведен пример кода:
WITH
MEMBER [Measures].[Last Day of Month] AS
TAIL(EXISTING [Date].[Date].[Date].MEMBERS).ITEM(0).ITEM(0).MEMBER_CAPTION
MEMBER [Measures].[Calculate YTD] AS
Sum
(
periodstodate(
[Date].[Calendar].[Year],[Date].[Calendar].CurrentMember
)
,[Measures].[Internet Total Sales]
)
SELECT
{
[Measures].[Last Day of Month]
,[Measures].[Internet Total Sales]
,[Measures].[Calculate YTD]
} ON COLUMNS,
[Date].[Calendar].[Month]
ON ROWS
FROM [Adventure Works Internet Sales Model]
WHERE
(
[Date].[Date].&[2012-03-01T00:00:00]:
[Date].[Date].&[2013-01-01T00:00:00]
);
Результат вышеприведенного запроса с неверной YTD:
3-Mar $373,483.01
4-Apr $773,818.62
5-May $1,132,696.51
6-Jun $1,687,856.65
7-Jul $2,132,414.88
8-Aug $2,656,332.26
9-Sep $3,142,509.71
10-Oct $3,677,669.20
11-Nov $4,215,624.71
12-Dec $4,840,126.88
1-Jan $29,456.25
Значения Я хотел бы, чтобы запрос возвращал (правильные значения YTD):
Calculate YTD
3-Mar $1,375,841.32
4-Apr $1,776,176.93
5-May $2,135,054.82
6-Jun $2,690,214.97
7-Jul $3,134,773.20
8-Aug $3,658,690.58
9-Sep $4,144,868.03
10-Oct $4,680,027.51
11-Nov $5,217,983.03
12-Dec $5,842,485.20
1-Jan $29,456.25