卡在 Oracle SQL 查询中
Stuck with an Oracle SQL query
我有这样一个场景:有一个 table course_details
如下:
现在我正在寻找的是找到学生的详细信息 - 在本例中 Stu_id
- 谁在 2016 年注册了课程。
例如 - 2016 年有课程 C1、C3 和 C4。在这些课程中,只有 S1 报读了所有这些课程。 S2和S3只录取了一些。
所以我的查询应该只给出 S1 的结果。
我尝试使用子查询分解,window 函数,但如果不对某些值进行硬编码就无法获得它。
下面的怎么样:
SELECT DISTINCT a.stu_id
FROM course_details AS a
WHERE
NOT EXISTS (
SELECT NULL FROM course_details AS b
WHERE
b.enrol_dt = 2016
AND
NOT EXISTS (
SELECT * FROM course_details AS c
WHERE c.c_id = b.c_id AND c.stu_id = a.stu_id
)
);
我有这样一个场景:有一个 table course_details
如下:
现在我正在寻找的是找到学生的详细信息 - 在本例中 Stu_id
- 谁在 2016 年注册了课程。
例如 - 2016 年有课程 C1、C3 和 C4。在这些课程中,只有 S1 报读了所有这些课程。 S2和S3只录取了一些。
所以我的查询应该只给出 S1 的结果。
我尝试使用子查询分解,window 函数,但如果不对某些值进行硬编码就无法获得它。
下面的怎么样:
SELECT DISTINCT a.stu_id
FROM course_details AS a
WHERE
NOT EXISTS (
SELECT NULL FROM course_details AS b
WHERE
b.enrol_dt = 2016
AND
NOT EXISTS (
SELECT * FROM course_details AS c
WHERE c.c_id = b.c_id AND c.stu_id = a.stu_id
)
);