Table B
name kecheng feshu
aa 语文 80
aa 数学 90
aa 英语 85
bb 语文 82
bb 数学 88
bb 英语 80
我要得到的表为
id name banji 语文 数学 英语 总分
1 aa 0701 80 90 85 255
2 bb 0702 82 88 80 250
请问怎样用一句sql 语句来实现哦
谢谢拉
...全文
1823打赏收藏
Sql语句???
table A id name banji 1 aa 0701 3 bb 0702 Table B name kecheng feshu aa 语文 80 aa 数学 90 aa 英语 85 bb 语文 82 bb 数学 88 bb 英语 80 我要得到的表为 id name banji 语文 数学 英语 总分 1 aa 0701 80 90 85 255 2 bb 0702 82 88 80 250 请问怎样用一句sql 语句来实现哦 谢谢拉
insert into B select 'aa','语文',80
insert into B select 'aa','数学',90
insert into B select 'aa','英语',85
insert into B select 'bb','语文',82
insert into B select 'bb','数学',88
insert into B select 'bb','英语',80
select a.id,a.name,a.banji,
sum(case when kecheng='语文' then feshu else 0 end) as 语文,
sum(case when kecheng='数学' then feshu else 0 end) as 数学,
sum(case when kecheng='英语' then feshu else 0 end) as 英语,
sum(feshu) as 总分
from A inner join B on a.name=B.name
group by a.id,a.name,a.banji
drop table a,b
/*
id name banji 语文 数学 英语 总分
1 aa 0701 80 90 85 255
2 bb 0702 82 88 80 250
insert into B select 'aa','语文',80
insert into B select 'aa','数学',90
insert into B select 'aa','英语',85
insert into B select 'bb','语文',82
insert into B select 'bb','数学',88
insert into B select 'bb','英语',80
select id,name,banji,(select feshu from B where B.name=A.name and B.kecheng='语文') 语文,
(select feshu from B where B.name=A.name and B.kecheng='数学') 数学,
(select feshu from B where B.name=A.name and B.kecheng='英语') 英语
from A