怎样将一个表中记录取出来合成一个新表?

xaojancsdn 2003-08-07 04:48:25
学号 姓名 科目 成绩
001 aa 语文 92
001 aa 外语 80
表一
002 bb 数学 70
001 aa 化学 88
002 bb 语文 56
001 aa 数学 78
002 bb 化学 63
002 bb 外语 80

我现在要得到这样一个表2

学号 姓名 语文 数学 化学 外语
001 aa 92 78 88 80
002 bb 56 70 63 80

怎样做?
...全文
21 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
97866 2003-08-07
  • 打赏
  • 举报
回复

Declare @SqlTxt VarChar(8000)
Set @SqlTxt=''
Select Distinct 科目 Into #tmp1 from 表1
Select @SqlTxt=@SqlTxt+科目+'=Max(Case when 科目='''+科目+''' then 成绩 else 0 end),' from #tmp1
Set @SqlTxt=Left(@SqlTxt,Len(@SqlTxt)-1)
Exec('Select 学号,姓名,'+@SqlTxt+' From 表1 Group by 学号,姓名')
dafu71 2003-08-07
  • 打赏
  • 举报
回复

select 学号 ,max(姓名) as '姓名' ,sum(case when 科目='语文' then 成绩 else 0 end) as '语文' ,sum(case when 科目='数学' then 成绩 else 0 end) as '数学',...
,sum(case when 科目='外语' then 成绩 else 0 end) as '外语' into 表2 from 表一 group by 学号
xaojancsdn 2003-08-07
  • 打赏
  • 举报
回复
非常感谢各位
dafu71 2003-08-07
  • 打赏
  • 举报
回复
select * from(
select 学号 ,max(姓名) as '姓名' ,sum(case when 科目='语文' then 成绩 else 0 end) as '语文' ,sum(case when 科目='数学' then 成绩 else 0 end) as '数学',...
,sum(case when 科目='外语' then 成绩 else 0 end) as '外语' from 表一 group by 学号 order by 学号
pengdali 2003-08-07
  • 打赏
  • 举报
回复
declare @sql varchar(8000)
set @sql = 'select 学号,姓名'
select @sql = @sql + ',sum(case 科目 when '''+科目+''' then 成绩 else 0 end) as ['+科目+']'
from (select distinct 科目 from 有一表) as a
select @sql = @sql+' into 新表名 from 有一表 group by 学号,姓名'
exec(@sql)


select * from 新表名
dlkfth 2003-08-07
  • 打赏
  • 举报
回复
insert into 表2 (学号,姓名, 语文, 数学,化学,外语) select 学号,姓名,max(case when 科目='语文' then 成绩 end )
,姓名,max(case when 科目='数学' then 成绩 end )
,姓名,max(case when 科目='化学' then 成绩 end )
,姓名,max(case when 科目='外语' then 成绩 end )
from 表一 group by 学号,姓名
CrazyFor 2003-08-07
  • 打赏
  • 举报
回复
select 学号,姓名
,sum(case when 科目='语文' then 成绩 end) 语文
,sum(case when 科目='数学' then 成绩 end) 数学
,sum(case when 科目='化学' then 成绩 end) 化学
,sum(case when 科目='外语' then 成绩 end) 外语
from 表一 group by 学号,姓名

34,593

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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