sql分组求和

编号名称金额税额代码001汽车1000102002轮船1500151003飞机2500252002轮船2000201要按编号分组,汇总金额、税额,还有一个条件是汇总后代码... 编号 名称 金额 税额 代码
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
展开
 我来答
做一个快乐的茶农
高粉答主

2019-06-29 · 每个回答都超有意思的
知道答主
回答量:1396
采纳率:100%
帮助的人:34.9万
展开全部

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错误显示运算符合并的所有查询必须在其目标列表中。

挺拔且威武丶菠萝蜜1983
推荐于2017-09-27 · TA获得超过527个赞
知道小有建树答主
回答量:474
采纳率:0%
帮助的人:642万
展开全部
select 编号,名称,sum(金额) as 金额,sum(税额) as 税额,代码
from 表名
group by 编号,名称,代码
having (代码='1' and sum(金额)>3000) or (代码='2' and sum(金额)>2000)
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jonsenkiar
2010-09-14 · TA获得超过201个赞
知道小有建树答主
回答量:200
采纳率:0%
帮助的人:131万
展开全部
select 编号,名称,sum(金额) 金额,sum(税额) 税额,代码
from 表名
group by 编号,名称,代码
having not (代码='1' and sum(金额)<='3000')
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式