我在做一个报表 ,基本计算都是在数据库中进行的 ,我们需要精确的数据,可是得到的结果却不对,都是四舍五入以后的数值了 ,比如,应该值是0.4000,可在gridview中的值则显示为0.0000.请高手指点。我的计算过程如下:
begin
select @return_nl=
case
when @tag='yzsjnl' then (select sum(dnxz_yzsj_dy) from dbo.zsxthdlgc_6
where sj<=@sj and substring(sj,1,4)=substring(@sj,1,4) and xdbm=@xdbm and xm=@xm)
when @tag='hdnl' then (select sum(dnxz_hd_dy) from dbo.zsxthdlgc_6
where sj<=@sj and substring(sj,1,4)=substring(@sj,1,4) and xdbm=@xdbm and xm=@xm)
when @tag='cllnl' then (select sum(dnxz_cll_dy) from dbo.zsxthdlgc_6
where sj<=@sj and substring(sj,1,4)=substring(@sj,1,4) and xdbm=@xdbm and xm=@xm)
when @tag='dhnl' then (select sum(dnxz_hd_dy) from dbo.zsxthdlgc_6
where sj<=@sj and substring(sj,1,4)=substring(@sj,1,4) and xdbm=@xdbm and xm=@xm)/
(select sum(dnxz_cll_dy) from dbo.zsxthdlgc_6 where sj<=@sj and substring(sj,1,4)=substring(@sj,1,4)
and xdbm=@xdbm and xm=@xm)
end
end
begin
select @return_nl=
case
when @tag='yzsjnl' then (select sum(dnxz_yzsj_dy) from dbo.zsxthdlgc_6
where sj<=@sj and substring(sj,1,4)=substring(@sj,1,4) and xdbm=@xdbm and xm=@xm)
when @tag='hdnl' then (select sum(dnxz_hd_dy) from dbo.zsxthdlgc_6
where sj<=@sj and substring(sj,1,4)=substring(@sj,1,4) and xdbm=@xdbm and xm=@xm)
when @tag='cllnl' then (select sum(dnxz_cll_dy) from dbo.zsxthdlgc_6
where sj<=@sj and substring(sj,1,4)=substring(@sj,1,4) and xdbm=@xdbm and xm=@xm)
when @tag='dhnl' then (select sum(dnxz_hd_dy) from dbo.zsxthdlgc_6
where sj<=@sj and substring(sj,1,4)=substring(@sj,1,4) and xdbm=@xdbm and xm=@xm)/
(select sum(dnxz_cll_dy) from dbo.zsxthdlgc_6 where sj<=@sj and substring(sj,1,4)=substring(@sj,1,4)
and xdbm=@xdbm and xm=@xm)
end
end
(
name varchar(20) not null,
qty int not null
)insert into @test
select 'test1',9 union all
select 'test2',4 union all
select 'test3',3 select sum(cast(qty as float)/5 ) from @test
如果是其他的类型,你就要对应修改了。