簡體   English   中英

根據 MA​​X 和 MIN 值完成 datediff 計算

[英]Complete datediff calculation based on MAX and MIN values

抱歉,我之前確實發布過類似的問題,但我不是很清楚。 我有一個包含字段的表,客戶,ID_Date,Pstng_Date,SUMOfAmount,Days_BetweenMax 和 days_between Min。

我想要的是一個查詢,它顯示 pstng_date 和 ID_Date 之間的日期差異,其中 pstng_date 是該客戶的最大值,另一列顯示相同的計算,其中 pstng_date 是該客戶的最小值。 那些只有一個 Pstng_date 的客戶應該顯示為零

所以查詢應該顯示這樣的結果:

Customer ID_Date    Pstng_Date SumOfAmount Days_BetweenMAX days_betweenMIN
-------- ---------- ---------- ----------- ------------
Holmes   31/01/2014 10/01/2014  $21,545.59            0       0
James    31/01/2014 10/01/2014 -$21,197.89            0       21
James    31/01/2014  5/01/2014  -$7,823.14            0       0
James    31/01/2014 24/01/2014     $308.00            7       0
Rod      31/01/2014 17/01/2014  -$2,603.95            0       0
Lisa     31/01/2014 17/01/2014  $22,019.49            0       0

假設您現有的表名為 [Postings],您可以創建一個查詢來計算 [Pstng_Date] 的 MIN() 和 MAX() 值

SELECT
    Customer,
    MIN(Pstng_Date) AS MinOfPstng_Date,
    MAX(Pstng_Date) AS MaxOfPstng_Date
FROM Postings
GROUP BY Customer

回來

Customer  MinOfPstng_Date  MaxOfPstng_Date
--------  ---------------  ---------------
Holmes    2014-01-10       2014-01-10     
James     2014-01-05       2014-01-24     
Lisa      2014-01-17       2014-01-17     
Rod       2014-01-17       2014-01-17     

然后您可以將其用作查詢中的子查詢來計算日期差異

SELECT
    p.Customer,
    p.ID_Date,
    p.Pstng_Date,
    p.SumOfAmount,
    IIf(q.MaxOfPstng_Date=q.MinOfPstng_Date,0,IIf(p.Pstng_Date=q.MaxOfPstng_Date,DateDiff("d",p.Pstng_Date,p.ID_Date),0)) AS Days_BetweenMAX,
    IIf(q.MaxOfPstng_Date=q.MinOfPstng_Date,0,IIf(p.Pstng_Date=q.MinOfPstng_Date,DateDiff("d",p.Pstng_Date,p.ID_Date),0)) AS Days_BetweenMIN
FROM
    Postings AS p
    INNER JOIN
    (
        SELECT
            Customer,
            MIN(Pstng_Date) AS MinOfPstng_Date,
            MAX(Pstng_Date) AS MaxOfPstng_Date
        FROM Postings
        GROUP BY Customer
    ) AS q
        ON p.Customer = q.Customer

回來

Customer  ID_Date     Pstng_Date  SumOfAmount  Days_BetweenMAX  Days_BetweenMIN
--------  ----------  ----------  -----------  ---------------  ---------------
Holmes    2014-01-31  2014-01-10     21545.59                0                0
James     2014-01-31  2014-01-10    -21197.89                0                0
James     2014-01-31  2014-01-05     -7823.14                0               26
James     2014-01-31  2014-01-24       308.00                7                0
Rod       2014-01-31  2014-01-17     -2603.95                0                0
Lisa      2014-01-31  2014-01-17     22019.49                0                0

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM