MS Access SQL 错误
MS Access SQL error
此代码本应 select 成为 TOP 1,但它无法正常工作。它不是只显示 TOP 1 记录,而是显示大量记录。可能是因为我引用了2个table。在另一个代码中,我只有 1 个并且它起作用了。不过,我需要参考 table 出勤率,所以我不确定如何解决这个问题。谢谢!
SELECT TOP 1 userID
FROM attendance, CFRRR
WHERE [attendance.Programs] LIKE CFRRR.program
AND [attendance.Language] LIKE CFRRR.language
AND [attendance.Status] = 'Available'
ORDER BY TS ASC
这是考勤的 table 字段:用户 ID、用户名、主管、类别、出勤日期、出勤时间、课程、语言、状态、TS。
这是 CFRRR 的 table 字段:CFRRRID、WorkerID、Workeremail、Workername、Dateassigned、assignedby、RRRmonth、Scheduleddate、scheduledtime、type、ScheduledType、caseid、language、lastname、firstname、Checkedin、Qid , status, CompletedType, comments, actiondate, verifduedate, program.
很明显最后一个table有很多记录
MS Access 中的 SELECT TOP
不同于 SQL 服务器中的 SELECT TOP
以及其他数据库中的类似功能。它 return 是基于 order by
的前几行。然后它继续 return 与最后一个值匹配的行。这有时很方便,这就是为什么 SQL 服务器具有此功能的原因 SELECT TOP WITH TIES
.
要解决此问题,您需要为每个生成的行添加一个或多个唯一的列:
SELECT TOP 1 userID
FROM attendance as a,
CFRRR
WHERE a.Programs LIKE CFRRR.program AND
a.Language LIKE CFRRR.language AND
a.Status = 'Available'
ORDER BY TS ASC, userId, CFFRID
此代码本应 select 成为 TOP 1,但它无法正常工作。它不是只显示 TOP 1 记录,而是显示大量记录。可能是因为我引用了2个table。在另一个代码中,我只有 1 个并且它起作用了。不过,我需要参考 table 出勤率,所以我不确定如何解决这个问题。谢谢!
SELECT TOP 1 userID
FROM attendance, CFRRR
WHERE [attendance.Programs] LIKE CFRRR.program
AND [attendance.Language] LIKE CFRRR.language
AND [attendance.Status] = 'Available'
ORDER BY TS ASC
这是考勤的 table 字段:用户 ID、用户名、主管、类别、出勤日期、出勤时间、课程、语言、状态、TS。
这是 CFRRR 的 table 字段:CFRRRID、WorkerID、Workeremail、Workername、Dateassigned、assignedby、RRRmonth、Scheduleddate、scheduledtime、type、ScheduledType、caseid、language、lastname、firstname、Checkedin、Qid , status, CompletedType, comments, actiondate, verifduedate, program.
很明显最后一个table有很多记录
SELECT TOP
不同于 SQL 服务器中的 SELECT TOP
以及其他数据库中的类似功能。它 return 是基于 order by
的前几行。然后它继续 return 与最后一个值匹配的行。这有时很方便,这就是为什么 SQL 服务器具有此功能的原因 SELECT TOP WITH TIES
.
要解决此问题,您需要为每个生成的行添加一个或多个唯一的列:
SELECT TOP 1 userID
FROM attendance as a,
CFRRR
WHERE a.Programs LIKE CFRRR.program AND
a.Language LIKE CFRRR.language AND
a.Status = 'Available'
ORDER BY TS ASC, userId, CFFRID