| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 641 人关注过本帖
标题:[求助]请教一个求sum值的问题
只看楼主 加入收藏
studentabc
Rank: 1
等 级:新手上路
帖 子:41
专家分:0
注 册:2005-3-4
收藏
 问题点数:0 回复次数:2 
[求助]请教一个求sum值的问题
我想要的效果是,如果找到符合条件的记录,则返回计算的sum值,如果没有,返回0。
问题在于,如果没有符合条件的记录,什么都不返回,连null都不返回,怎么办啊
比如如下一个表 A,内容为
name value
a 1
a 2
a 1
---------------------------

执行下面这个命令:
select sum(value)
from A
where name<> 'a' group by name
结果什么都没有,一行数据都没有。

改成如下的命令
select case when B.name is null then 0 else B.sumValue end
from (
select sum(value) as sumValue
from A
where name<> 'a'
group by name
) B


结果还是什么都没有,我想不到其他办法了,谁能帮帮我?

搜索更多相关主题的帖子: sum 
2006-02-17 16:56
marydan
Rank: 1
等 级:新手上路
帖 子:54
专家分:0
注 册:2006-2-14
收藏
得分:0 
你要返回0,是不是用在程序里的啊
我觉得你不如麻烦点写个存储过程吧
create procedure *****
@name varchar(10)

declare @total int,
@child int

select @total=sum(value)
from A

select @child=sum(value)
from A
where name=@name

if(@total=@child)
begin
return 0
end

else
begin
return @child
end

GO

笨是笨了点,至少很清晰

我的眼里只有你
2006-02-17 17:21
wsn
Rank: 2
等 级:新手上路
威 望:5
帖 子:321
专家分:0
注 册:2006-2-9
收藏
得分:0 
何必呢,一条搞定


select isnull(b.sum,0) as sum from (select sum(value) as sum from A where name='a') b

已婚男人!没事请勿打扰·老婆格言:①不准對她耍酷 ②不准讓她吃醋 ③吵架我要讓步 ④揍我我要挺住⊙⊙
2006-02-17 17:33
快速回复:[求助]请教一个求sum值的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.029254 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved