请问这个SQL语句怎么写呢?

leon51 2017-12-11 11:10:09
如下图所示,如何返回每个人inner和outer合计得分呢?谢谢!
...全文
94 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
听雨停了 2017-12-12
  • 打赏
  • 举报
回复

create table tab_001(
inner_name varchar(20),
inner_score int,
out_name varchar(20),
outer_score int
)

insert into tab_001(inner_name,inner_score,out_name,outer_score)values('张三',2,'张三',3);
insert into tab_001(inner_name,inner_score,out_name,outer_score)values('李四',1,'张三',2);
insert into tab_001(inner_name,inner_score,out_name,outer_score)values('王五',2,'李四',2);

select name,sum(inner_score) as score from (
select inner_name as name,inner_score
from tab_001
union ALL
select out_name,outer_score
from tab_001
) a
group by name

rucypli 2017-12-12
  • 打赏
  • 举报
回复
select name,sum(score) from ( select inner_preparedby as name,inner_score as score from tb union all select outer_preparedby as name,outer_score as score from tb ) tmp group by name
Seeker-Wu 2017-12-12
  • 打赏
  • 举报
回复
这个可以分步完成,
第一步取出inner_preparedby和inner_score的值;
select inner_preparedby as name,inner_score as score from pn
第二步取出outer_preparedby和outer_score的值:
select outer_preparedby as name,outer_score as score from pn
第三部将值全部合并:
select inner_preparedby as name,inner_score as score from pn
union all
select outer_preparedby as name,outer_score as score from pn
第四部对全部合并(不是合并)生成的表按姓名分组求score的和就得到你想要的结果:
select name ,sum(score) as score from (select inner_preparedby as name,inner_score as score from pn
union all
select outer_preparedby as name,outer_score as score from pn ) pn_sum group by name
结果图如下:


56,687

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧