sql分组求和

编号 名称 金额 税额 代码
001 汽车 1000 10 2
002 轮船 1500 15 1
003 飞机 2500 25 2
002 轮船 2000 20 1
要按编号分组,汇总金额、税额,还有一个条件是汇总后代码为1的金额要大于3000,代码为2的金额要大于2000。显示结果为:
编号 名称 金额 税额 代码
002 轮船 3500 35 1
003 飞机 2500 25 2

1、使用having对分组结果进行过滤,一般情况下having是放在group by的后面。

2、compute 可以对查询结果进行小计,放在order by后面,使用compute sum对查询结果汇总。

3、根据分组小计,利用compute by实现,by后面接需要分组小计的字段。

4、可以利用SQL Server数据库命令合并查询结果集,利用union all,是将两个或以上表的查询结果合并起来,不包括重复的。

5、可以利用SQL Server数据库命令合并查询结果集,除了利用union all,还有union,union也是将两个或两个以上的查询结果合并起来,但是它是包含重复的。

6、如果上述union或union all拼接的两个子查询字段不匹配,保证字段个数一致,就会出现消息205错误显示运算符合并的所有查询必须在其目标列表中。

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-09-27
select 编号,名称,sum(金额) as 金额,sum(税额) as 税额,代码
from 表名
group by 编号,名称,代码
having (代码='1' and sum(金额)>3000) or (代码='2' and sum(金额)>2000)本回答被提问者采纳
第2个回答  2010-09-14
select 编号,名称,sum(金额) 金额,sum(税额) 税额,代码
from 表名
group by 编号,名称,代码
having not (代码='1' and sum(金额)<='3000')
相似回答