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 语句来实现哦
谢谢拉
[解决办法]
create table A (id int,name varchar(5),banji varchar(10))
insert into B select 1, 'aa ', '0701 '
insert into B select 2, 'bb ', '0701 '
create table B(name varchar(5),kecheng VARChar(10),feshu varchar(10))
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
(所影响的行数为 2 行)
[解决办法]
--借用楼上数据
create table A (id int,name varchar(5),banji varchar(10))
insert into A select 1, 'aa ', '0701 '
insert into A select 2, 'bb ', '0701 '
create table B(name varchar(5),kecheng VARChar(10),feshu int)
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
*/
