【发布时间】:2014-05-29 12:21:07
【问题描述】:
我有两个表,分别称为“教师”和“课程”。表'teachers'有四列,即teacher_id、teacher_name、teacher_work_hours和course_id。表“课程”有两列,即 course_id 和 course_name。我想从表'teacher'中选择两列,并计算表'courses'中teacher.course_id = course.course_id的实例数。查询应丢弃表 course 的 count() 为零的行,即 count() 为零的行不应显示在结果集中。我怎么做? 我有这个问题。
select t.teacher_name, t.teacher_work_hours, (select count(*)
from course where course_id = t.course_id
having count(*) > 0) as COURSES
from teacher t
where teacher_work_hours > 5
AND COURSES IS NOT NULL
查询不正确,因为它不允许我将 IS NOT NULL 运算符放在 COURSES 上。
【问题讨论】:
-
ROLES IS NOT NULL在这里有什么意义? -
xyz 表中可用的字段有哪些?没有条件......它总是有相同的计数......
-
最好给出示例数据和期望的结果,而不是显示您损坏的查询和糟糕的解释。不太清楚你想用这种方法做什么。
-
除了显示您损坏的查询*
-
您不能在
WHERE子句中使用列别名。唯一允许使用列别名的子句是ORDER BY。
标签: sql-server database jdbc