求教一个SQL语句怎么写.

冰山来客123499 2002-07-19 01:45:55
我现在有这样一张表,比如是成绩表,他的字段如下:
学号,成绩,课程编号
1 87 1
1 98 2
2 78 1
2 87 2
...
那么我想这样来显示他.
学号,课程编号1,课程编号2......
1 87 98
2 78 87
...
我应该怎样写比较好呢?
...全文
25 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
tameless 2002-07-19
  • 打赏
  • 举报
回复
可以用存储过程做
hzm_8 2002-07-19
  • 打赏
  • 举报
回复
同意 j9988(j9988)
tiger7403 2002-07-19
  • 打赏
  • 举报
回复
解答1:

1、建立中间表temp_mid结构如下:
create table temp_mid
(
id varchar(10) primary key,
c1 int,
c2 int
)
go

2、导入数据如下:
insert into temp_mid (id, c1, c2)
values (1, 1, 0)
go

insert into temp_mid (id, c1, c2)
values (1, 0, 1)
go

3、处理
select 学号,sum(课一*c1),sum(课二*c2)
from 表 a, temp_mid b
where a.学号 = b.id

j9988 2002-07-19
  • 打赏
  • 举报
回复
select 学号,
sum(case when 课程编号=1 then 成绩 else 0 end) as 课程编号1,
sum(case when 课程编号=2 then 成绩 else 0 end) as 课程编号2,
...........
from tablename group by 学号 order by 学号
如果课程多就用动态SQL语句,连接。
j9988 2002-07-19
  • 打赏
  • 举报
回复
select 学号,
sum(case when 课程编号=1 then 成绩 else 0) as 课程编号1,
sum(case when 课程编号=2 then 成绩 else 0) as 课程编号2,
...........
from tablename group by 学号 order by 学号
如果课程多就用动态SQL语句,连接。
CSDNM 2002-07-19
  • 打赏
  • 举报
回复
http://www.csdn.net/expert/topic/886/886393.xml?temp=.4446833

有类似问题!
CSDNM 2002-07-19
  • 打赏
  • 举报
回复
http://www.csdn.net/expert/topic/886/886393.xml?temp=.4446833

有类似问题!

34,590

社区成员

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

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