关于sql语法

基于数据库中的成绩表:成绩(学号,课程名,成绩),用sql语句写出只选修一门的学成的学号、课程名、成绩。

[quote]在sqlsever2000中试过了,提示错误是“列名 'k' 无效。” [/quote]

select xh,kc,cj ,count(kc)as k from t_cj group by xh having k=1

在mysql 测试通过! 仔细检查下下! 标准sql ! 呵呵

SqlServer用的不多!

select 学号,课程名,成绩,count(课程名) as k from 成绩表 group by 学号 having k=1

试试看!

你的学号这一列是不是唯一的?

[quote]你的学号这一列是不是唯一的?[/quote]
个人猜测不唯一!

或者这么试试:

select 学号,课程名,成绩 from 成绩表 group by 学号 having count(课程名)=1

[quote]题目上也没有说是唯一的,我认为学号不能是唯一的,因为学生选多门课的情况很常见,我觉得成绩表的主键应该是“学号、课程名”的联合主键 [/quote]

:idea: 貌似想的和你一样!

[quote]我也测试了,在mysql中是可以的,但是子sqlserver2000中还是提示“列名 'k' 无效。” [/quote]

还有这事! 你把sql 贴一下! 我这边跑一下! :arrow:

用这个select 学号,课程名,成绩 from 成绩表 group by 学号 having count(课程名)=1 还提示错误?