Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Mengira Perbezaan Tarikh Antara Baris Berturut-turut dalam Microsoft Access?

Bagaimana untuk Mengira Perbezaan Tarikh Antara Baris Berturut-turut dalam Microsoft Access?

Mary-Kate Olsen
Lepaskan: 2025-01-08 08:21:40
asal
493 orang telah melayarinya

How to Calculate the Date Difference Between Consecutive Rows in Microsoft Access?

Menentukan Masa Berlalu Antara Transaksi Akaun dalam Microsoft Access

Banyak set data menjejaki transaksi akaun dengan baris berturut-turut. Menganalisis masa antara urus niaga ini selalunya memerlukan pengiraan perbezaan tarikh. Ini mudah dicapai menggunakan pertanyaan SQL dalam Microsoft Access. Mari kita terokai dua kaedah untuk mencapai ini:

Kaedah 1: Sertai Sendiri dengan MIN() dan DATEDIFF()

Pendekatan ini menggunakan sambung sendiri untuk membandingkan setiap baris dengan baris berikutnya untuk akaun yang sama.

<code class="language-sql">SELECT  T1.ID, 
        T1.AccountNumber, 
        T1.Date, 
        MIN(T2.Date) AS NextDate, 
        DATEDIFF("D", T1.Date, MIN(T2.Date)) AS DaysDifference
FROM    YourTable T1
LEFT JOIN YourTable T2
    ON T1.AccountNumber = T2.AccountNumber
    AND T2.Date > T1.Date
GROUP BY T1.ID, T1.AccountNumber, T1.Date;</code>
Salin selepas log masuk

Pertanyaan ini menyertai YourTable (disebut sebagai T1 dan T2) dengan dirinya sendiri. LEFT JOIN memastikan semua transaksi disertakan, walaupun mereka tidak mempunyai transaksi berikut. MIN(T2.Date) mencari tarikh transaksi berikutnya yang paling awal dan DATEDIFF("D", T1.Date, MIN(T2.Date)) mengira perbezaan hari.

Kaedah 2: Subkueri Bersarang untuk Tarikh Transaksi Seterusnya

Alternatif ini menggunakan subkueri bersarang untuk menentukan tarikh transaksi seterusnya bagi setiap akaun dengan cekap.

<code class="language-sql">SELECT  ID,
        AccountNumber,
        Date,
        NextDate,
        DATEDIFF("D", Date, NextDate) AS DaysDifference
FROM    (   SELECT  ID, 
                    AccountNumber,
                    Date,
                    (   SELECT  MIN(Date) 
                        FROM    YourTable T2
                        WHERE   T2.AccountNumber = T1.AccountNumber
                        AND     T2.Date > T1.Date
                    ) AS NextDate
            FROM    YourTable T1
        ) AS T</code>
Salin selepas log masuk

Pertanyaan dalam mencari NextDate untuk setiap baris. Pertanyaan luar kemudian menggunakan DATEDIFF() untuk mengira perbezaan hari.

Kedua-dua kaedah menghasilkan nombor akaun, tarikh transaksi, tarikh transaksi seterusnya dan perbezaan tarikh yang dikira. Pilihan optimum bergantung pada volum data khusus anda dan keperluan prestasi. Penyertaan sendiri mungkin kurang cekap dengan set data yang sangat besar, manakala subkueri bersarang kadangkala boleh lebih mudah dibaca.

Atas ialah kandungan terperinci Bagaimana untuk Mengira Perbezaan Tarikh Antara Baris Berturut-turut dalam Microsoft Access?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan