我在Access中工作。我有两个表2015F和2016f,它们都包含了每一年的当前学生。我使用student_ID作为两者的主键。
这就是我目前如何获得从2015年到2016年的新生保留率
我从2015F创建了一个新表,其中包含了所有的新生。然后,我从2016F创建了一个新表,其中包含2015年的student_id。最后,我使用下面的查询来获取2015年的新生,这些学生在2016年没有回来。
SELECT [2015Freshmen].*
FROM 2015Freshmen
WHERE [2015Freshmen.SPRIDENSPRIDEN_ID] NOT IN (SELECT [2015Fenrolled16.SPRIDENSPRIDEN_ID]
FROM [2015Fenrolled16]
);有没有一种更简单的方法来生成这些结果,只使用2015F和2016F。
我在access数据库工作。
发布于 2017-10-10 03:46:43
任务:返回2015F中不存在的所有2015F记录。
一种使用左连接的方法(返回所有2015年的记录和匹配的2016年的记录,如果存在的话。然后排除存在216记录的所有记录
SELECT *
FROM 2015F
LEFT JOIN 2016F
on 2015F.SPRIDENSPRIDEN_ID = 2016F.SPRIDENSPRIDEN_ID
WHERE 2016F.SPRIDENSPRIDEN_ID is null或者使用not exists和相关子查询返回2016F中不存在的所有2015F记录。假设两个表中的SPRIDENSPRIDEN_ID相同。
SELECT *
FROM 2015F
WHERE NOT EXISTS (SELECT *
FROM 2016F
WHERE 2015F.SPRIDENSPRIDEN_ID = 2016F.SPRIDENSPRIDEN_ID)https://stackoverflow.com/questions/46653683
复制相似问题