【问题标题】:Access SQL calculating date difference from dup访问 SQL 计算与 dup 的日期差异
【发布时间】:2018-05-18 06:49:44
【问题描述】:

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

请帮忙... 提前谢谢!

【问题讨论】:

    标签: sql ms-access duplicates datediff


    【解决方案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
    

    【讨论】:

    • 期间是状态保持不变的天数。例如,id 101 在第 1 天为 N,在第 3 天更改为 P,因此 N 的周期为 2。谢谢
    • 哦,知道了。我可以将其添加到我的答案中,将在几分钟内修改它!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-08-15
    • 2016-06-22
    • 1970-01-01
    • 2018-04-24
    • 2018-11-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多