【发布时间】:2019-05-02 18:10:58
【问题描述】:
我有一个从当年提取数据的查询,我正在尝试使用子查询在上一年的新列中添加数据,因为主查询的 WHERE 语句将其限制为当前年份。我不断收到子查询返回超过 1 个值的错误,但是当我只运行子查询时,每个 ID 只有一个值。我以前分别运行这两个查询并在 Excel 中使用 vlookup 来加入最后一列,但我希望有一种方法可以在一个查询中执行此操作。
SELECT DISTINCT student_master.id_num, stud_term_sum_div_a.trm_gpa,
(SELECT stud_term_sum_div_b.trm_gpa
FROM student_master LEFT OUTER JOIN
stud_term_sum_div stud_term_sum_div_b
ON student_master.id_num = stud_term_sum_div_b.id_num
WHERE ( stud_term_sum_div_b.yr_cde = '2018'
) A AS Prev_GPA
FROM student_master LEFT OUTER JOIN
stud_term_sum_div stud_term_sum_div_a
ON student_master.id_num = stud_term_sum_div_a.id_num
WHERE stud_term_sum_div_a..yr_cde = '2019'
我希望有 3 列 - 学生 ID、2019 年 gpa、2018 年 gpa
【问题讨论】:
-
更改您的日期范围以包括两个年份,然后使用
CASE语句确定哪些年份的数据进入哪一列。