分组求和就好了啊
select id,bid,bname,istitle,sum(bnum)
from tb
group by id,bid,bname,istitle
select id,bid,bname,istitle,sum(bnum)
from tb
group by id,bid,bname,istitle
解决方案 »
- 如何判断sp_addlinkedserver建立的链接服务器是否可用?
- |M| 关于触发器 在Inser 的时候可不可以根据一个字段是不是一个值而执行这条触发器
- sql server存储过程和视图的存放位置
- 求一个insert触发器~请大家指点
- ODBC 连接取数据 nvarchar(max)变量 数据超过2500就会异常
- 明天上午要去面试,要考sqlserver2000,好怕哟!!!请大伙出几个常出的题目我做做看,分不多,只好出一个给2分!
- SQL双表关联查询问题
- 如何实现select一个数字型字段时当该值为0时,用一个横线代替该值?
- 树行结构!!!!!!!!!!!!!!!!!1
- mssqlserver用ado连接时出现“一般性网络错误“,是什么原因
- 关于update的问题
- 关于“该大小大于所允许的最大行大小 8060”的问题
但是这样写是求不出来和的呀跟直接读取表数据没什么区别呀比如select id,bid,bname,istitle,sum(bnum) as vote
from tb
group by id,bid,bname,istitle
vote出来的是0啊.而不是总和
我改成这样select id,bid,bname,istitle,sum(bnum) as vote
from ak_vote_list where istitle=0
group by id,bid,bname,istitle 同样是不行的
returns int
as
begin
declare @bnums int=0
select @bnums=sum(bnum) from tablename where istitle=@id
return @bnums
endselect id,bid,bname,bnum=func_sum(id),istitle from tablename where istitle=0
( select *from t where istitle=0)a left join
( select *from t where istitle!=0)b on a.id=b.istitle group by
a.id,a.bid,a.bname,a.istitle第二行的记录bnum 应该是5吧。
SELECT 21,1,0,'请问你是:' ,0,0 UNION ALL
SELECT 22,1,0,'先生' ,3,21 UNION ALL
SELECT 23,1,0,'女士' ,3,21 UNION ALL
SELECT 24,1,0,'请问你的年龄是:',0, 0 UNION ALL
SELECT 25,1,0,'18岁以下' ,1,24 UNION ALL
SELECT 26,1,0,'18-24岁' ,3,24 UNION ALL
SELECT 27,1,0,'24-30岁' ,1,24
),
answer AS (
SELECT istitle,
SUM(bnum) bnum
FROM test
WHERE istitle <> 0
GROUP BY istitle
)
SELECT t.id,
t.bid,
t.bname,
a.bnum,
0 istitle
FROM test t
JOIN answer a
ON a.istitle = t.id
id bid bname bnum istitle
----------- ----------- ---------------- ----------- -----------
21 1 请问你是: 6 0
24 1 请问你的年龄是: 5 0
(SELECT id,bid,bname,istitle
FROM test
WHERE istitle=0) a,
(SELECT istitle,sum(bnum) AS bnum
FROM test
WHERE istitle<>0
GROUP BY istitle) b
WHERE a.id=b.istitle