这是我的第一个问题,我没有找到任何答案来解决我的问题,所以我决定打开一个新的问题。如何获取MSACCESS表中的第一个和最后一个事件?
我使用的是从excel文件导入的表“访问”,所以没有主键,就像这样:
ID | Enter_date | Exit_date 10 | 08/06/2015 | 08/06/2015 11 | 08/06/2015 | 09/06/2015 12 | 08/06/2015 | 09/06/2015 10 | 18/06/2015 | 30/06/2015 10 | 02/07/2015 | 03/07/2015 11 | 12/06/2015 | 14/06/2015 12 | 10/06/2015 | 14/06/2015 12 | 02/07/2015 | 03/07/2015
所以,我试图创建一个查询选择在桌子上的最后一个寄存器ID的第一个寄存器,忽略中间寄存器,用于更好地解释我期待这样的结果:
ID | Enter_date | Exit_date 10 | 08/06/2015 | 08/06/2015 10 | 02/07/2015 | 03/07/2015 11 | 08/06/2015 | 09/06/2015 11 | 12/06/2015 | 14/06/2015 12 | 08/06/2015 | 09/06/2015 12 | 02/07/2015 | 03/07/2015
我开始了一个代码,我可以得到FIR ST登记,但问题是最后的= /因为有些ID的有3人2行:
SELECT k.ID, k.Enter_date, k.Exit_date
FROM
(SELECT ROW_NUMBER() OVER (PARTITION BY ID ORDER BY ID) AS RowNo,
ID, Enter_date, Exit_date FROM Access)k
WHERE k.RowNo=1
寄存器是由输入日期还是退出日期表示的? –
在“注册”我的意思是当id出现在桌子上。每次出现的id都是这个id的注册表。无论日期如何,每一行都是一个寄存器。 –
您的查询如何工作? MS Access不支持'row_number'。如果还需要'as'作为表别名。 –