求购一条SQL语句!

gebobo 2005-09-28 07:02:53
比如有张销售表!
good_id good_name good_sp good_unti good_sl good_dj good_je

001 aaaa fsadf 只 2 2.5 5
002 bbbb asdfasf 只 10 3.5 35
001 aaaa fsadf 只 3 2.0 6
001 aaaa fsadf 只 -1 2.0 -2.0

对数据进行汇总
select * from good_id,good_name,good_sp,good_unit,sum(good_sl) as sum_goodsl,
sum(good_je) as sum_goodje,sum(good_je)/sum(good_sl) as sum_gooddj
group by good_id,good_name,good_sp,good_unit

不知这样的写法对不对
sum(good_je)/sum(good_sl) as sum_gooddj 这样写法不知对不对(算单价的平均值)
问题是:
没有出现负数的情况下该语句可以通过,有负数就出现错误提示:Divide by zero error encountered









...全文
73 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
jdcxf 2005-09-28
  • 打赏
  • 举报
回复
同意,我就这么写
bluesky23 2005-09-28
  • 打赏
  • 举报
回复
sum(good_sl) != 0 这个条件必须限制。
楼上兄弟写法也可以。
gelinqing 2005-09-28
  • 打赏
  • 举报
回复

或者这么写:
(CASE
WHEN Sum(good_sl) = 0
THEN 0
ELSE SUM (good_je)/ SUM (good_sl)
End) as sum_gooddj
gebobo 2005-09-28
  • 打赏
  • 举报
回复
gelinqing()
不是很明白你的意思,能不能说的详细点啊!
gebobo 2005-09-28
  • 打赏
  • 举报
回复
谢谢大家!!大家快点啊!
gelinqing 2005-09-28
  • 打赏
  • 举报
回复
加个NVL?

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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