求和和转换不起作用



我正在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。你能告诉我我哪里出错了吗?

问题是整数除法:

t.total / l.total

这将返回一个整数。

最简单的解决方案是:

t.total * 1.0 / l.total

在您的表上,您将total声明为int。您应该将其声明float.尝试:

declare @LastYear table (
[year] nvarchar(40),
total float
)

最新更新