我正在SQL Server中做一个总和,并且我试图针对上一个财政年度的百分比差来执行本财政年度,其代码如下所示:
declare @LastYear table (
[year] nvarchar(40),
total int )
insert @LastYear ([year],[total])
select '2018', count(a.caseno) from activity a
where a.activedate between '2017-04-01' and GETDATE()-365
declare @ThisYear table (
[year] nvarchar(40),
total int)
insert @ThisYear([year],[total])
select '2018', count(a.caseno) from activity a
where a.activedate between '2018-04-01' and GETDATE()
select t.year,sum(convert(decimal(18,2),((t.total/l.total)-1),18)) from
@ThisYear t
left join @LastYear l on t.year = l.year
group by t.year
我从中得到的答案是-1。总和的答案应该是-0.06。你能告诉我我要去哪里了吗?
答案 0 :(得分:2)
问题是整数除法:
t.total / l.total
这将返回一个整数。
最简单的解决方案是:
t.total * 1.0 / l.total
答案 1 :(得分:1)
在表上,您将total
声明为int
。您应该声明为float
。试试:
declare @LastYear table (
[year] nvarchar(40),
total float
)