日期:2014-05-18  浏览次数:20574 次

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 sel