日期:2014-05-18  浏览次数:20553 次

计算环比 取上个区间的月份 怎么取?
环比的概念就是 这个区间的数据与上个区间的数据之比
比如 今年7--8月份的数据 环比就是 与5--6月的数据相比
现在有以下的问题
1:查了一下 没找到sqlserver计算月份的函数 
2:如果是1--3月的环比 就应该与去年的10--12月数据做比较 这种月份日期的计算 sqlserver有没有相应的函数?

------解决方案--------------------
SQL code

--举个例子
select 
1.0*sum(case when dt>='2011-7-1' and dt<'2011-9-1' then data end)/
sum(case when dt>='2011-5-1' and dt<'2011-7-1' then data end)
from tb

--另外建议如果表中是很多数据,建议先生成每月汇总数据的临时表,否则直接查询效率会很慢

------解决方案--------------------
用dateadd()函数

如:1--3月的环比
就是dateadd(m,-3,time),dateadd(m,-3-3,time)
就是向前再算多少个月就可以了
------解决方案--------------------
你可以设置个开始日期,结束日期,然后通过日期函数来得到上一区间的开始日期,结束日期。
比如:
本区间开始日期2011-10-01,结束日期2011-12-31。
那么上一区间开始日期DataAdd(month,-3,'2011-10-01')='2011-07-01'
上一区间结束日期DataAdd(month,-3,'2011-12-31')='2011-09-30'