根据条件是否合并为一条记录
时间:2011-11-28
来源:互联网

请教大家:怎样写sql语句实现:当重修标记值为1的是时候,合并相同课程名称的记录为一条记录,并且将带有重修标记的成绩赋值与重修成绩
如下效果
学号 课程名称 成绩 重修成绩
1006 经济学 49 89
作者: tiewuqing 发布时间: 2011-11-28
select a.学号, a.课程名称, a.成绩, isnull(b.重修成绩,a.重修成绩) '重修成绩' from tab a left join (select * from tab where 重修标记=1) b on a.学号=b.学号 and a.课程名称=b.课程名称 where a.重修标记<>1
作者: ap0405140 发布时间: 2011-11-28
isnull(b.重修成绩,a.重修成绩) '重修成绩'
是什么意思呢
作者: tiewuqing 发布时间: 2011-11-28
with cte as ( select * from ( select ROW_NUMBER() over(partition by 学号 order by 重修标记) 排序哦 ,学号,课程名称,成绩,重修成绩,重修标记 from SCORE ) t where 排序哦 =1 ),cte2 as ( select * from ( select ROW_NUMBER() over(partition by 学号 order by 重修标记) 排序哦 ,学号,课程名称,成绩,重修成绩,重修标记 from SCORE ) t where 排序哦 =2 )select cte.学号,cte.课程名称,cte.成绩,cte2.成绩 重修成绩,cte2.重修标记 from cte left join cte2 on cte.学号= cte2.学号
作者: myxx520 发布时间: 2011-11-28
作者: tiewuqing 发布时间: 2011-11-28
作者: myxx520 发布时间: 2011-11-28
SQL code
with cte as
(
select * from (
select ROW_NUMBER() over(partition by 学号 order by 重修标记) 排序哦 ,学号,课程名称,成绩,重修成绩,重修标记 from SCORE
) t where 排序哦 =1
),cte2 as
(
select * fr……
重修标记只是个状态值 为什么排序呢
作者: tiewuqing 发布时间: 2011-11-28
还要努力啊
作者: hy_number_one 发布时间: 2011-11-28
其实就是把正式考试的结果作为一个数据集,重修结果作为一个数据集,两个数据集进行连接查询就OK
这句精辟 明白了谢谢!
作者: tiewuqing 发布时间: 2011-11-28
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28