Access SQL 计算与 dup 的日期差异

Access SQL calculating date difference from dup

我有一个 table 按日期记录状态 t1

ID  Date    Status
101 1   N
101 2   N
101 3   P
101 4   P
101 5   R
101 6   R
101 7   R
102 1   N
102 2   N
102 3   P
102 4   N
102 5   N
102 6   N
102 7   P
103 5   N
103 6   N
103 7   P

但我一直在尝试获得一个结果,我可以计算每个状态的周期,并且只显示状态更改的日期。

ID  Date    Status  Period
101 1   N   2
101 3   P   2
101 5   R   2
102 1   N   2
102 3   P   1
102 4   N   3
102 7   P   1
103 5   N   2
103 7   P   1

请帮忙... 提前致谢!

我认为这可以满足您的需求:

SELECT Table.*, tA.Period
FROM Table INNER JOIN (SELECT ID, Status, MIN(Date) AS DateOfChange, COUNT(*) as Period
                       FROM Table
                       GROUP BY ID, Status) AS tA ON Table.ID = tA.ID 
                                               AND Table.Date = tA.DateOfChange