sql计算问题

SylarZhou 2011-12-16 01:58:10
写了一个存储过程,其中包含除法计算,但是有一个除数为0,这是因为数据录入的时候有问题是否会造成我查出的数据不显示
代码中Fweight 为0
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go

ALTER proc [dbo].[Pd_TB_Profit_CP]
(@FDateB datetime,@ssql varchar(8000))
as
set nocount on
SET ANSI_WARNINGS OFF
select t1.FItemName,sum(t1.FQty) FQty,sum(t1.FDAmount) FDAmount,sum(isnull(t1.Fcost,0)) Fcost,sum(isnull(t2.FDDHLFee,0)*(isnull(t1.FDWeight/t2.FWeight,0))) FDDHLFee,
sum(isnull(t2.FDHLFee*(t1.FDWeight/t2.FWeight),0)) FDHLFee,
sum(isnull(t1.FDAmount,0)+(isnull(t2.FDDHLFee,0)*(t1.FDWeight/t2.FWeight))-(isnull(t1.Fcost,0)+(isnull(t2.FDHLFee,0)*(t1.FDWeight/t2.FWeight)))) FZprofit,
sum(isnull(t1.FDAmount,0)+(isnull(t2.FDDHLFee,0)*(t1.FDWeight/t2.FWeight))-(isnull(t1.Fcost,0)+(isnull(t2.FDHLFee,0)*(t1.FDWeight/t2.FWeight))))/count(distinct t1.fid) FDprofit
from SU_Sale_TBStockBillEntry t1
inner join SU_Sale_TBStockBill t2 on t1.fid=t2.fid
where CONVERT(varchar(6),[FDate],112)=@FdateB GROUP BY t1.FItemName
union all
select '合计', sum(t1.FQty),sum(t1.FDAmount),sum(t1.Fcost),sum(isnull(t2.FDDHLFee,0)*(isnull(t1.FDWeight/t2.FWeight,0))),
sum(isnull(t2.FDHLFee*(t1.FDWeight/t2.FWeight),0)),
sum(isnull(t1.FDAmount,0)+(isnull(t2.FDDHLFee,0)*(t1.FDWeight/t2.FWeight))-(isnull(t1.Fcost,0)+(isnull(t2.FDHLFee,0)*(t1.FDWeight/t2.FWeight)))),
sum(isnull(t1.FDAmount,0)+(isnull(t2.FDDHLFee,0)*(t1.FDWeight/t2.FWeight))-(isnull(t1.Fcost,0)+(isnull(t2.FDHLFee,0)*(t1.FDWeight/t2.FWeight))))/count(distinct t1.fid)
from SU_Sale_TBStockBillEntry t1
inner join SU_Sale_TBStockBill t2 on t1.fid=t2.fid
where CONVERT(varchar(6),[FDate],112)=@FdateB

查询结果如图
如果正确的话 在合计上面应该还有其他数据的
...全文
65 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
快溜 2011-12-16
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 sylarzhou 的回复:]
引用 1 楼 ssp2009 的回复:
传进去的参数查不出来数据,所以就没显示,显示一行是因为union了一行固定的数据

语法问题 还是数据问题呢
[/Quote]数据问题,语法有问题会报错,包括你的sql里如果整除遇到零就出错
geniuswjt 2011-12-16
  • 打赏
  • 举报
回复
试试nullif(col,0)[Quote=引用 3 楼 qianjin036a 的回复:]
在除号后的内容上写 isnull(col,1)
[/Quote]
-晴天 2011-12-16
  • 打赏
  • 举报
回复
在除号后的内容上写 isnull(col,1)
SylarZhou 2011-12-16
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 ssp2009 的回复:]
传进去的参数查不出来数据,所以就没显示,显示一行是因为union了一行固定的数据
[/Quote]
语法问题 还是数据问题呢
快溜 2011-12-16
  • 打赏
  • 举报
回复
传进去的参数查不出来数据,所以就没显示,显示一行是因为union了一行固定的数据

34,587

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧