MS Access SQL错误

礼来公司

该代码应该选择TOP 1,但是它不能正常工作。不仅显示了TOP 1记录,它还显示了大量记录。可能是因为我引用了2个表。在另一个代码中,我只有1个并且有效。不过,我需要参考表的出勤率,因此我不确定如何解决该问题。谢谢!

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

以下是出席人数的表格字段:userID,用户名,主管,类别,AttendanceDay,AttendanceTime,程序,语言,状态,TS。

以下是CFRRR的表格字段:CFRRRID,WorkerID,Workeremail,Workername,Dateassigned,assignedby,RRRmonth,Scheduledate,cheduledtime,类型,ScheduledType,caseid,语言,姓氏,名字,Checkedin,Qid,状态,CompletedType,注释,actiondate,验证程序。

显然最后一张表有很多记录。

戈登·利诺夫

SELECT TOPMS AccessSELECT TOP中的SQLSQL Server中的SQL和其他数据库中的类似功能不同。它基于返回最上面的行order by然后,它继续返回与最后一个值匹配的行。有时这很方便,这就是为什么SQL Server具有此功能的原因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

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章