Saya diminta membantu mengembangkan laporan untuk mengambil 25% sampel transaksi acak dalam rentang tanggal tertentu. Saya bukan seorang programmer tetapi saya dapat merancang yang berikut ini dengan cukup cepat:
SELECT TOP 25 PERCENT account.CID, account.ACCT, account.NAME, log.DATE, log.action_txt, log.field_nm, log.from_data, log.to_data, log.tran_id, log.init
FROM account INNER JOIN log ON account.ACCT = log.ACCT
GROUP BY account.CID, account.ACCT, account.NAME, log.DATE, log.action_txt, log.field_nm, log.from_data, log.to_data, log.tran_id, log.init
HAVING (((log.DATE) Between #2/7/2018# And #6/15/2018#) AND ((log.action_txt)="mod" Or (log.action_txt)="del") AND ((log.init)="J1X"
ORDER BY log.tran_dt
Ini mengembalikan 25% catatan dalam rentang tanggal. Setiap baris catatan bersifat unik tetapi setiap nomor akun berpotensi memiliki beberapa catatan setiap harinya. Dalam beberapa kasus, catatan memiliki tanggal dan tran_id yang sama juga.
Setelah berdiskusi lebih lanjut dengan pemohon, dia sebenarnya ingin melihat semua transaksi 25% akun yang memiliki aktivitas setiap hari dalam rentang tanggal. Jadi jika ada 100 akun pada 1/3/2018 dengan catatan di tabel ini, dia ingin melihat semua transaksi untuk 25 akun tersebut; jika ada 60 akun pada 2/3/2018 dengan catatan di tabel ini, dia ingin melihat semua transaksi untuk 15 akun tersebut; dan seterusnya.
Saya berpikir bahwa modul Access akan bekerja paling baik dalam skenario ini karena saya yakin ada banyak bagian di dalamnya. Saya pikir saya memerlukan fungsi untuk menelusuri rentang tanggal dan untuk setiap hari: 1. Hitung nomor rekening hanya satu kali 2. Kembalikan semua transaksi sebesar 25% dari total akun
Tapi seperti yang saya sebutkan, saya bukan seorang programmer dan saya lelah mencari solusi yang mungkin untuk banyak bagian.