我正在使用SQL Server 2008
我有以下SQL获取今天和2012年12月31日之间的所有日期。我现在要做的是从值10000开始并同等地增加此值,因此在12月31日我的值为150000。
Declare @projection table(d datetime, t decimal)
Declare @d datetime
Declare @t decimal(18, 2)
set @d='20110527'
set @t=100000
While @d<='20121231'
Begin
Insert into @projection values (@d, @t)
set @d=@d+1
End
Select d as DateCol, t as TotalRevenue from @projection
任何帮助非常感谢
答案 0 :(得分:2)
将t
从10000到150000线性插值。
Declare @projection table(d datetime, t decimal)
Declare @d datetime, @d1 datetime, @d2 datetime
Declare @t decimal(18,4), @t1 decimal(18, 4), @t2 decimal(18,4), @tincr decimal(18,4)
set @d1='20110527'
set @d2='20121231'
set @t1=10000
set @t2=150000
Set @tincr = (@t2-@t1)/DATEDIFF(D, @d1, @d2)
Set @d = @d1
set @t = @t1
While @d<=@d2
Begin
Insert into @projection values (@d, @t)
set @d=@d+1
Set @t=@t+@tincr
End
Select d as DateCol, t as TotalRevenue from @projection
请注意,我将小数精度调高为4,使舍入误差无关紧要。