报告中行与行之间的日期差,以毫秒计

问题描述 投票:-1回答:1

我有一个名为 CustomerLog 带字段

ID    CustomerID      BuyingDate
1     1001            12/02/2020(dd/mm/yyyy)
2     2023            10/02/2020
3     2024            14/02/2020
4     1001            11/03/2020
5     2023            12/03/2020
6     2024            20/03/2020
7     1001            23/04/2020
8     2023            23/04/2020
9     2024            25/04/2020

现在我需要一个如下的查询

ID    CustomerID      BuyingDate      Difference
1     1001            12/02/2020      0
4     1001            11/03/2020      28
7     1001            23/04/2020      43

这将是非常有帮助的,如果任何人可以提供一个例子文件的原因,我读了一些帖子关于这种类型,但不能理解。

ms-access-2016 date-difference
1个回答
0
投票

你可以做的是使用一个子查询来获取客户的前一个日期。你还需要使用 Nz (Null to Zero)函数,将每个客户的前一个日期设置为与购买日期相同,然后用 DateDiff 来获取天数的差异。你的SQL应该是这样的。

SELECT 
    C.ID, 
    C.CustomerID, 
    C.BuyingDate, 
    Nz((SELECT TOP 1 C1.BuyingDate FROM CustomerLog AS C1 WHERE C1.CustomerID=C.CustomerID AND C1.BuyingDate<C.BuyingDate ORDER BY C1.BuyingDate DESC),C.[BuyingDate]) AS PreviousDate, 
    DateDiff("d",PreviousDate,C.BuyingDate) AS Difference
FROM CustomerLog AS C;

谢谢

© www.soinside.com 2019 - 2024. All rights reserved.