我在数据库中有以下两个表。一个表是人员表,另一个表是条目表,条目表记录部门的人员进入

人表

    Person
Person_ID   Person_NIC  Person_Name Person_Last_Name    Person_Age  State
1           121212          ABC         BCD              12         ACTIVE
2           212121          ABB         BBB              13         NONACTIVE
3           111111          BBB         CCC              14         ACTIVE


输入表

ENTRY
Entry_ID  Person_ID Entry_Escort    Entry_Date
1         1           David         20121210
2         1           David         20130110
3         1           David         20130111
4         1           David         20130112
5         1           David     20130113
6         2           David     20121210
7         2           David     20130110
8         2           David     20130111
9         2           David     20130112
10        2           David     20130113


我必须为以下情况编写sql。我需要查找人员的上次输入日期,该日期对于在一月份的数据库中如何处于非活动状态。有人可以帮助我进行查询吗?在此先感谢您的帮助。

最佳答案

这应该像这样简单:

SELECT p.Person_ID, MAX(e.Entry_Date) as MaxEntryDate
FROM
 Person p
 INNER JOIN Entry e
   ON p.Person_NIC = e.EntryID
WHERE p.State = 'NONACTIVE'
   AND Entry_Date  BETWEEN 20130101 AND 20130131
GROUP BY p.Person_ID

10-04 10:51