用 MDX 计算指定时间段的累计值(转自晓易家园)
用 MDX 计算指定时间段的累计值
指定时间段的累计值是数据仓库里经常需要计算的字段,如当年、月截止库存量、销售额等。
这个例子是论坛7年前的数据,03~04年增加6倍,但还不是增长最快的时候。
这种计算用 mdx 函数实现非常简单。
使用 PeriodsToDate 函数就可以实现
PeriodsToDate(level,member),第一个是层次,第二个是当前成员
下面是一个使用 PeriodsToDate 函数的例子,计算每日的年累计主帖数
with MEMBER [Measures].[年累计主帖数]
AS sum(
PeriodsToDate(
[日期].[日期层次].[年] -- ,
-- [日期].[日期层次].CurrentMember
)
,[Measures].[主帖数]
)
select {
[Measures].[主帖数],
[Measures].[年累计主帖数]
} on 0,
[日期].[日期层次].[日期].members on 1
from forum
在 sql server ssas 里新建计算成员,直接写:
sum(
PeriodsToDate(
[日期].[日期层次].[年] ,
[日期].[日期层次].CurrentMember)
,[Measures].[主帖数]
)
PeriodsToDate 还有几个简化函数 YTD,QTD,MTD,分别对应层次年、季度、月份,
用起来更简单。
在 sql server ssas 里新建计算成员,计算月累计直接写:
sum(
MTD()
,[Measures].[主帖数]
)
PHP 计算这个要写不少代码。
浙公网安备 33010602011771号