标题:SQL 单表多结果查询问题。
只看楼主
CBCBCB
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2021-6-21
结帖率:0
已结贴  问题点数:20 回复次数:4 
SQL 单表多结果查询问题。
有一个表,有公司名、销售日期、销售金额 3个字段

想得出的结果是 公司名 / 全表格所有销售总和 / 2021年销售总额 (没有2021年销售就为0)/2020年销售总额 (没有2020年销售就为0)/2019年销售总额 (没有2019年销售就为0)/ 2018年销售总额 (没有2018年销售就为0)



有没有好的查询语句,请各位大神解答一下,谢谢。
搜索更多相关主题的帖子: 结果 SQL 询问 销售 单表 
2021-06-21 20:48
mywisdom88
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:190
帖 子:3125
专家分:8340
注 册:2015-3-25
得分:20 
取日期的年份,convert(varchar(4),销售日期,120)
用sum(case when...)组合

如果公司名称,都是一样的
select max(公司名称) as 公司名称,
       sum(case convert(varchar(4),销售日期,120) when '2021' then 销售金额 else 0) as '2021年销售总额',
       sum(case convert(varchar(4),销售日期,120) when '2020' then 销售金额 else 0) as '2020年销售总额',
       sum(case convert(varchar(4),销售日期,120) when '2019' then 销售金额 else 0) as '2019年销售总额',
       sum(case convert(varchar(4),销售日期,120) when '2018' then 销售金额 else 0) as '2018年销售总额'
from 一个表

2021-06-22 09:01
CBCBCB
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2021-6-21
得分:0 
回复 2楼 mywisdom88
不止有一间公司,而且不同公司还有很多不同时间段的记录
2021-06-23 19:31
CBCBCB
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2021-6-21
得分:0 
回复 2楼 mywisdom88
高手,厉害,修改了一下,可以啦!谢谢啊!~
2021-06-23 19:42
mywisdom88
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:190
帖 子:3125
专家分:8340
注 册:2015-3-25
得分:0 
不同公司,就来个分组,就可以
select 公司名称,
       sum(case convert(varchar(4),销售日期,120) when '2021' then 销售金额 else 0) as '2021年销售总额',
       sum(case convert(varchar(4),销售日期,120) when '2020' then 销售金额 else 0) as '2020年销售总额',
       sum(case convert(varchar(4),销售日期,120) when '2019' then 销售金额 else 0) as '2019年销售总额',
       sum(case convert(varchar(4),销售日期,120) when '2018' then 销售金额 else 0) as '2018年销售总额'
from 一个表
group by 公司名称

[此贴子已经被作者于2021-6-24 08:36编辑过]

2021-06-24 08:35



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-506053-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.380222 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved