Mengambil Rekod Terkini dengan Cekap dengan Nilai Semak Bukan Sifar dalam Pelayan SQL
Artikel ini menunjukkan cara untuk mendapatkan semula rekod terkini untuk setiap kumpulan dalam jadual SQL Server, khususnya memfokuskan pada rekod yang nilai lajur 'semak' lebih besar daripada sifar. Mari kita pertimbangkan jadual sampel dengan struktur berikut:
<code>| GroupID | RecordDate | CashAmount | CheckAmount | |---|---|---|---| | 1 | 2013-01-01 | 0 | 0 | | 2 | 2013-01-01 | 0 | 800 | | 1 | 2013-01-03 | 0 | 700 | | 3 | 2013-01-01 | 0 | 600 | | 1 | 2013-01-02 | 0 | 400 | | 3 | 2013-01-05 | 0 | 200 |</code>
Matlamat kami adalah untuk mendapatkan set keputusan berikut:
<code>| GroupID | RecordDate | CheckAmount | |---|---|---| | 2 | 2013-01-01 | 800 | | 1 | 2013-01-03 | 700 | | 3 | 2013-01-05 | 200 |</code>
Berikut ialah cara untuk mencapai ini menggunakan pertanyaan SQL:
Pertama, kami mengenal pasti RecordDate
maksimum bagi setiap GroupID
dengan CheckAmount
lebih besar daripada 0:
<code class="language-sql">SELECT GroupID, MAX(RecordDate) AS MaxRecordDate FROM YourTable WHERE CheckAmount > 0 GROUP BY GroupID;</code>
Kemudian, kami menyambungkan hasil ini kembali ke jadual asal untuk mendapatkan semula CheckAmount
yang sepadan:
<code class="language-sql">SELECT yt.GroupID, yt.RecordDate, yt.CheckAmount FROM YourTable yt INNER JOIN ( SELECT GroupID, MAX(RecordDate) AS MaxRecordDate FROM YourTable WHERE CheckAmount > 0 GROUP BY GroupID ) AS MaxDates ON yt.GroupID = MaxDates.GroupID AND yt.RecordDate = MaxDates.MaxRecordDate;</code>
Pertanyaan ini menapis dengan cekap amaun cek bukan sifar dan hanya memilih rekod terkini untuk setiap kumpulan. Ingat untuk menggantikan YourTable
dengan nama sebenar jadual anda. Menggunakan nama lajur deskriptif (seperti GroupID
dan CheckAmount
) amat disyorkan untuk kebolehbacaan dan kebolehselenggaraan kod yang lebih baik.
Atas ialah kandungan terperinci Bagaimana untuk Mencari Rekod Terkini untuk Setiap Kumpulan dengan Pemeriksaan Bukan Sifar dalam Pelayan SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!