任意时间段量的统计

王朝other·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

如果查询时间段是维中的成员,那么这段时间的量的汇总可以直接得出!(缺省状态下,维中成员是按级别

汇总的),如查询1997年或1997年3月的汇总,可以使用以下语句:

select

{[Time2].[1997]} on columns,

{[Customers].[Country].members} on rows

from Sales

where ([Measures].[Store Sales])

或[Time].[1997].[Q1].[3]

但很多情况下,客户希望得到任意时间段的汇总!通常,我们可以这样实现:

如:1997.1.8--1997.5.13

with member [Time2].[1997.1.8--1997.5.13] as 'sum([Time2].[1997].[Q1].[1].[8]:[Time2].[1997].[Q2].[5].[13])'

select

{[Time2].[1997.1.8--1997.5.13]} on columns,

{[Customers].[Country].members} on rows

from Sales

where ([Measures].[Store Sales])

注意事项:

1)时间段的起始和结束日期必须是同一级别;

2)未知系统是否会优化查询,所以尽可能使用聚集:如1997.1.8--1997.5.13可以分解为:

sum([Time2].[1997].[Q1].[1].[8]:[Time2].[1997].[Q1].[1].[31])+

sum([Time2].[1997].[Q1].[2]:[Time2].[1997].[Q1].[3])+

[Time2].[1997].[Q2].[4]+

sum([Time2].[1997].[Q2].[5].[1]:[Time2].[1997].[Q2].[5].[13])

分段尽可能优化,并且可以使用减法!!

如:

sum([Time2].[1997].[Q1]:[Time2].[1997].[Q2])-

sum([Time2].[1997].[Q1].[1].[1]:[Time2].[1997].[Q1].[1].[7])-

sum([Time2].[1997].[Q2].[5].[14]:[Time2].[1997].[Q2].[6].[30])

以上个人意见,仅供参考!

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航