从dup访问SQL计算日期差异

时间:2017-12-04 18:19:41

标签: sql ms-access duplicates datediff

我有一张表按日期记录状态 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

请帮忙...... 提前谢谢!

1 个答案:

答案 0 :(得分: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