联接表上的多个条件

时间:2019-04-20 03:27:21

标签: sql-server

我有一个小的运动数据库,请参阅下面的ER图

enter image description here

我想编写一个查询,列出在2012年秋季开设的至少一门课程中具有至少一个高分(> = 3.5)的学生的学生的姓氏,名字和专业。

我的下面的代码:

select s.StdNo,s.StdFirstName,s.StdLastName,s.StdMajor,e.EnrGrade,o.OfferNo,o.OffYear
from Enrollment e
join Offering o on e.OfferNo=o.OfferNo
join Student s on s.StdNo=e.StdNo
where e.EnrGrade >=3.5 and o.OffYear="2010";

但是我遇到了SQL错误

  

[207] [S0001]:无效的列名'2010'

我对该错误感到困惑,值“ 2010”不是列名,“ Offyear”是列。那么为什么会这样呢?

基本查询并不难,但是我受困于(多个)嵌套查询。

1 个答案:

答案 0 :(得分:2)

Offyear显示为数字,因此应与数字2010而非文本"2010"进行比较:
[...] and Offyear = 2010