2014-04-26 47 views
0

我正在写一个查询以在三个不同时间间隔内获得两个日期之间的差异。按不同时间间隔的日期差异

ID , D1   , D2 
1 , '2013-01-01' , '2013-01-01' 
2 , '2013-01-01' , '2013-02-01' 
3 , '2013-01-01' , '2013-03-01' 
4 , '2013-01-01' , '2013-07-01' 

我想三类结果:第一个星期,一个月,然后3个月,6个月,9个月,等。

case when round((DATEDIFF(D2,D1))/7,0) < 1 then '1st week' 
when round((DATEDIFF(D2,D1))/7,0) >1 and round((DATEDIFF(D2,D1))/7,0) <5 then 'one month' 
when ???? 

对于我出思维的其余部分。

+1

什么是预期的输出为您查询? –

+0

上表为一周,一个月,三个月,六个月。 – Developer

+0

编辑您的信息,以便人们不必阅读评论就能帮助您。 –

回答

1
when YEAR(D2)*4+QUARTER(D2)-YEAR(D1)*4-QUARTER(D1)=1 then 'one quarter' 

然后你可以指望宿舍3,6,9个monthes = 1,2,3个季度相应

+0

我想我这种情况下,我必须复制每一季度的这一行ie = 1,2,3,4获得季度,也季度2013年和2014年将显示为相同 – Developer

+0

您可以修改它按YEAR() +季度差异 – StanislavL

+0

为什么你用年数乘以4. – Developer