在Transact SQL编程中,有没有数值累计函数 select sum(...) from table where ... 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 select * ,(select sum(b) from table where a<=tem.a) c from table tem select sum(b), sum(c) from yourtable Transact-SQL 参考 SUM返回表达式中所有值的和,或只返回 DISTINCT 值。SUM 只能用于数字列。空值将被忽略。语法SUM ( [ ALL | DISTINCT ] expression ) 参数ALL对所有的值进行聚合函数运算。ALL 是默认设置。DISTINCT指定 SUM 返回唯一值的和。expression是常量、列或函数,或者是算术、按位与字符串等运算符的任意组合。expression 是精确数字或近似数字数据类型分类(bit 数据类型除外)的表达式。不允许使用聚合函数和子查询。返回类型以最精确的 expression 数据类型返回所有表达式值的和。表达式结果 返回类型 整数分类 int decimal 分类 (p, s) decimal(38, s) money 和 smallmoney 分类 money float 和 real 分类 float 重要 当使用 CUBE 或 ROLLUP 时,不支持区分聚合,例如 AVG(DISTINCT column_name)、COUNT(DISTINCT column_name)、MAX(DISTINCT column_name)、MIN(DISTINCT column_name) 和 SUM(DISTINCT column_name)。如果使用了,Microsoft® SQL Server™ 将返回错误信息并取消查询。示例A. 在聚合和行聚合中使用 SUM下列示例显示聚合函数和行聚合函数之间的区别。第一个示例显示只提供汇总数据的聚合函数,第二个示例显示提供详尽数据和汇总数据的行聚合函数。USE pubsGO-- Aggregate functionsSELECT type, SUM(price), SUM(advance)FROM titlesWHERE type LIKE '%cook'GROUP BY typeORDER BY typeGO下面是结果集:type ------------ -------------------------- -------------------------- mod_cook 22.98 15,000.00 trad_cook 47.89 19,000.00 (2 row(s) affected)USE pubsGO-- Row aggregatesSELECT type, price, advanceFROM titlesWHERE type LIKE '%cook'ORDER BY typeCOMPUTE SUM(price), SUM(advance) BY type下面是结果集:type price advance ------------ -------------------------- -------------------------- mod_cook 19.99 0.00 mod_cook 2.99 15,000.00 sum ========================== 22.98 sum ========================== 15,000.00 type price advance ------------ -------------------------- -------------------------- trad_cook 20.95 7,000.00 trad_cook 11.95 4,000.00 trad_cook 14.99 8,000.00 sum ========================== 47.89 sum ========================== 19,000.00 (7 row(s) affected)B. 计算多列的组合计 下例计算每类书籍的价格和预付款总和。USE pubsGOSELECT type, SUM(price), SUM(advance)FROM titlesGROUP BY typeORDER BY typeGO下面是结果集:type ------------ -------------------------- -------------------------- business 54.92 25,125.00 mod_cook 22.98 15,000.00 popular_comp 42.95 15,000.00 psychology 67.52 21,275.00 trad_cook 47.89 19,000.00 UNDECIDED (null) (null) (6 row(s) affected)请参见聚合函数©1988-2000 Microsoft Corporation。保留所有权利。 create table 你的表(a int,b int,c int)insert 你的表 values(1,12 ,null)insert 你的表 values(2, 10 ,null)insert 你的表 values(3, 10 , null)insert 你的表 values(4, 10, null)declare @a intset @a=0update 你的表 set @a=@a+b,c=@aselect * from 你的表godrop table 你的表---------------------------------------------------如果你只是显示:create table 你的表(a int,b int)insert 你的表 values(1,12 )insert 你的表 values(2, 10 )insert 你的表 values(3, 10 )insert 你的表 values(4, 10)select *,(select sum(b) from 你的表 where a<=tem.a) 结果 from 你的表 temgodrop table 你的表 关于比较大小的问题 关于mssql数据库多条件汇总的问题. 请教个同表赋值的顺题 求一百分数 来个高人~~ 关于SQL的3张表的整合~~ 在线等 ~ 一个简单的select 语句怎么写? 急求,如何讲一个TEXT类型的数据拆分插入到一个表中 怎么样把一个表的数据导入到另外一个表啊? 同步 新手,求sql,大虾帮忙! 紧急提问:SQL语句中如何定义一个布尔类型!!得到正确回答后,一分钟内结贴! selecl语句存在一个变量里,想要在Transact SQL中,得到这条SQL语句的结果放到一个变量
SUM
返回表达式中所有值的和,或只返回 DISTINCT 值。SUM 只能用于数字列。空值将被忽略。语法
SUM ( [ ALL | DISTINCT ] expression ) 参数
ALL对所有的值进行聚合函数运算。ALL 是默认设置。DISTINCT指定 SUM 返回唯一值的和。expression是常量、列或函数,或者是算术、按位与字符串等运算符的任意组合。expression 是精确数字或近似数字数据类型分类(bit 数据类型除外)的表达式。不允许使用聚合函数和子查询。返回类型
以最精确的 expression 数据类型返回所有表达式值的和。表达式结果 返回类型
整数分类 int
decimal 分类 (p, s) decimal(38, s)
money 和 smallmoney 分类 money
float 和 real 分类 float
重要 当使用 CUBE 或 ROLLUP 时,不支持区分聚合,例如 AVG(DISTINCT column_name)、COUNT(DISTINCT column_name)、MAX(DISTINCT column_name)、MIN(DISTINCT column_name) 和 SUM(DISTINCT column_name)。如果使用了,Microsoft® SQL Server™ 将返回错误信息并取消查询。
示例
A. 在聚合和行聚合中使用 SUM
下列示例显示聚合函数和行聚合函数之间的区别。第一个示例显示只提供汇总数据的聚合函数,第二个示例显示提供详尽数据和汇总数据的行聚合函数。USE pubs
GO
-- Aggregate functions
SELECT type, SUM(price), SUM(advance)
FROM titles
WHERE type LIKE '%cook'
GROUP BY type
ORDER BY type
GO下面是结果集:type
------------ -------------------------- --------------------------
mod_cook 22.98 15,000.00
trad_cook 47.89 19,000.00 (2 row(s) affected)USE pubs
GO
-- Row aggregates
SELECT type, price, advance
FROM titles
WHERE type LIKE '%cook'
ORDER BY type
COMPUTE SUM(price), SUM(advance) BY type下面是结果集:type price advance
------------ -------------------------- --------------------------
mod_cook 19.99 0.00
mod_cook 2.99 15,000.00 sum
==========================
22.98
sum
==========================
15,000.00 type price advance
------------ -------------------------- --------------------------
trad_cook 20.95 7,000.00
trad_cook 11.95 4,000.00
trad_cook 14.99 8,000.00 sum
==========================
47.89
sum
==========================
19,000.00 (7 row(s) affected)B. 计算多列的组合计
下例计算每类书籍的价格和预付款总和。USE pubs
GO
SELECT type, SUM(price), SUM(advance)
FROM titles
GROUP BY type
ORDER BY type
GO下面是结果集:type
------------ -------------------------- --------------------------
business 54.92 25,125.00
mod_cook 22.98 15,000.00
popular_comp 42.95 15,000.00
psychology 67.52 21,275.00
trad_cook 47.89 19,000.00
UNDECIDED (null) (null) (6 row(s) affected)
请参见聚合函数©1988-2000 Microsoft Corporation。保留所有权利。
insert 你的表 values(1,12 ,null)
insert 你的表 values(2, 10 ,null)
insert 你的表 values(3, 10 , null)
insert 你的表 values(4, 10, null)declare @a int
set @a=0update 你的表 set @a=@a+b,c=@aselect * from 你的表
go
drop table 你的表---------------------------------------------------
如果你只是显示:create table 你的表(a int,b int)
insert 你的表 values(1,12 )
insert 你的表 values(2, 10 )
insert 你的表 values(3, 10 )
insert 你的表 values(4, 10)
select *,(select sum(b) from 你的表 where a<=tem.a) 结果 from 你的表 tem
go
drop table 你的表