以文本方式查看主题

-  ╋艺 镇╋  (http://wdystv.com/bbs/index.asp)
--  ┣◇网站建设&Web语言  (http://wdystv.com/bbs/list.asp?boardid=4)
----  sql语句求数据表中某列或多列的和 select sum  (http://wdystv.com/bbs/dispbbs.asp?boardid=4&id=2072)

--  作者:admin
--  发布时间:2010/8/13 10:24:43
--  sql语句求数据表中某列或多列的和 select sum

两种方式
1。
set rs=conn.execute("select sum(金额) from DATA where 学校=\'"&school&"\' and 类型="&id"")
response.write rs(0)
set rs=nothing

set rs=conn.execute("select sum(金额),sum(面值) from DATA where 学校=\'"&school&"\' and 类型="&id"")
response.write rs(0)  \'求的是"金额"列的和
response.write rs(1)  \'求的是"面值"列的和
set rs=nothing


2。
sql1 = "SELECT sum(m) as M_sum FROM linshi where username= \'" & username & "\'"
set rs1= Server.CreateObject("ADODB.Recordset")
rs1.open sql1,conn,1,1
 p=rs1("M_sum")   \'这样就可以取到值了

sql1 = "SELECT sum(m) as M_sum,sum(k) as K_sum FROM linshi where username= \'" & username & "\'"
set rs1= Server.CreateObject("ADODB.Recordset")
rs1.open sql1,conn,1,1
 p=rs1("M_sum")   \'这样就可以取到值了
 p2=rs1("K_sum") 

这里RS1("M_sum")=RS1(0),其实一样的

[此贴子已经被作者于2010-8-13 10:29:09编辑过]

--  作者:admin
--  发布时间:2010/8/13 10:32:32
--  
其中好像列中不能有空值,否则用下面的代码,不过下面代码是求两列的和的和,不过原理一样:

select sum(a+b) from A


select sum(a) + sum(b) from A

(未考虑空值)

在这里要注意的是A和B不要有空值,我认为下面的写法好一点。

select sum(isnull(a,0))+isnull(b,0)) from A


select sum(isnull(a,0))+ + sum(isnull(b,0)) ) from A



或者还有这个?
select sum(nvl(a,0))+sum(nvl(b,0))from A;