未经测试,但可能类似于以下内容
COUNT(
//to find the members with values use nonempty
NONEMPTY(
//find the last date in a set
TAIL(
EXISTS( //find the dates associated to the currentmember
[Date].[Date Hierarchy].CurrentMember
,[Date].[Date Hierarchy].[Date Hierarchy].MEMBERS
)
).ITEM(0).LAG(6)
:
TAIL( //find the last date
EXISTS( //find the dates associated to the currentmember
[Date].[Date Hierarchy].CurrentMember
,[Date].[Date Hierarchy].[Date Hierarchy].MEMBERS
)
).ITEM(0)
, [Measures].[Amount]
)
)
我针对 Adventure Works 立方体进行了测试。
这是如果选择了月份:
WITH
MEMBER [Measures].[X] AS
Count
(
NonEmpty
(
Tail
(
Exists
(
[Date].[Calendar].[Date].MEMBERS
,[Date].[Calendar].CurrentMember
)
).Item(0).Lag(6)
:
Tail
(
Exists
(
[Date].[Calendar].[Date].MEMBERS
,[Date].[Calendar].CurrentMember
)
).Item(0)
,[Measures].[Internet Sales Amount]
)
)
SELECT
NON EMPTY
{
[Measures].[Internet Sales Amount]
,[Measures].[X]
} ON 0
,NON EMPTY
[Date].[Calendar].[Month].&[2007]&[7]
:
[Date].[Calendar].[Month].&[2008]&[6] ON 1
FROM [Adventure Works];
按预期返回 7:
如果我在轴 1 上改为每天:
WITH
MEMBER [Measures].[X] AS
Count
(
NonEmpty
(
Tail
(
Exists
(
[Date].[Calendar].[Date].MEMBERS
,[Date].[Calendar].CurrentMember
)
).Item(0).Lag(6)
:
Tail
(
Exists
(
[Date].[Calendar].[Date].MEMBERS
,[Date].[Calendar].CurrentMember
)
).Item(0)
,[Measures].[Internet Sales Amount]
)
)
SELECT
NON EMPTY
{
[Measures].[Internet Sales Amount]
,[Measures].[X]
} ON 0
,NON EMPTY
[Date].[Calendar].[Date].&[20070701]
:
[Date].[Calendar].[Date].&[20080630] ON 1
FROM [Adventure Works];