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>
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>
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!