如何获取 MSACCESS table 上的第一次和最后一次出现?
How to get the first and last occurrence on MSACCESS table?
这是我的第一个问题,我没有找到解决问题的答案,所以我决定提出一个新问题。
我正在使用从 excel 文件导入的 table "Access",因此没有主键,如下所示:
<b> ID | Enter_date | Exit_date</b>
10 | 2015 年 8 月 6 日 | 08/06/2015
11 | 2015 年 8 月 6 日 | 2015 年 9 月 6 日
12 | 2015 年 8 月 6 日 | 2015 年 9 月 6 日
10 | 2015 年 6 月 18 日 | 2015 年 6 月 30 日
10 | 2015 年 2 月 7 日 | 03/07/2015
11 | 2015 年 12 月 6 日 | 14/06/2015
12 | 2015 年 10 月 6 日 | 14/06/2015
12 | 2015 年 2 月 7 日 | 03/07/2015
所以,我正在尝试创建一个查询 select table 上 id 的第一个寄存器和最后一个寄存器,忽略中间寄存器,以便更好地解释我是期待这个结果:
<b> ID | Enter_date | Exit_date</b>
10 | 2015 年 8 月 6 日 | 08/06/2015
10 | 2015 年 2 月 7 日 | 03/07/2015
11 | 2015 年 8 月 6 日 | 2015 年 9 月 6 日
11 | 2015 年 12 月 6 日 | 14/06/2015
12 | 2015 年 8 月 6 日 | 2015 年 9 月 6 日
12 | 2015 年 2 月 7 日 | 03/07/2015
我启动了一个代码,我可以得到第一个寄存器,但问题是最后一个 =/ 因为一些 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
假设 Enter_date 和 Exit_date 不重叠,以下应该有效。警告,航空代码。
SELECT ID, Min(Enter_date) as EnterDate, Max(Exit_date) as ExitDate FROM tblRegisters Group By ID
UNION
SELECT ID, MAX(Enter_date) as ExitDate, Max(Exit_date) as ExitDate FROM tblRegisters Group By ID
这是我的第一个问题,我没有找到解决问题的答案,所以我决定提出一个新问题。
我正在使用从 excel 文件导入的 table "Access",因此没有主键,如下所示:
<b> ID | Enter_date | Exit_date</b>
10 | 2015 年 8 月 6 日 | 08/06/2015
11 | 2015 年 8 月 6 日 | 2015 年 9 月 6 日
12 | 2015 年 8 月 6 日 | 2015 年 9 月 6 日
10 | 2015 年 6 月 18 日 | 2015 年 6 月 30 日
10 | 2015 年 2 月 7 日 | 03/07/2015
11 | 2015 年 12 月 6 日 | 14/06/2015
12 | 2015 年 10 月 6 日 | 14/06/2015
12 | 2015 年 2 月 7 日 | 03/07/2015
所以,我正在尝试创建一个查询 select table 上 id 的第一个寄存器和最后一个寄存器,忽略中间寄存器,以便更好地解释我是期待这个结果:
<b> ID | Enter_date | Exit_date</b>
10 | 2015 年 8 月 6 日 | 08/06/2015
10 | 2015 年 2 月 7 日 | 03/07/2015
11 | 2015 年 8 月 6 日 | 2015 年 9 月 6 日
11 | 2015 年 12 月 6 日 | 14/06/2015
12 | 2015 年 8 月 6 日 | 2015 年 9 月 6 日
12 | 2015 年 2 月 7 日 | 03/07/2015
我启动了一个代码,我可以得到第一个寄存器,但问题是最后一个 =/ 因为一些 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
假设 Enter_date 和 Exit_date 不重叠,以下应该有效。警告,航空代码。
SELECT ID, Min(Enter_date) as EnterDate, Max(Exit_date) as ExitDate FROM tblRegisters Group By ID
UNION
SELECT ID, MAX(Enter_date) as ExitDate, Max(Exit_date) as ExitDate FROM tblRegisters Group By ID