Materi
Tim keuangan akan memakai tabel pembayaran untuk menutup buku Maret. Sebelum itu, kamu mengaudit rujukannya. Aturan kasus: setiap pembayaran harus menunjuk tepat satu baris pesanan. Rujukan yang cocok dengan nol baris adalah rujukan putus; rujukan yang cocok dengan lebih dari satu baris adalah rujukan ambigu, karena kunci di tabel induknya ganda.
Rujukan ambigu tidak tertangkap pemeriksaan rujukan biasa. NOT EXISTS hanya bertanya apakah ada pasangan, bukan berapa banyak. Menghitung pasangan dengan subkueri COUNT(*) menjawab keduanya sekaligus: nol berarti putus, lebih dari satu berarti ambigu. Kunci ganda di tabel induk juga membuat JOIN menggandakan baris anak; modul berikutnya menunjukkan akibatnya pada hasil transformasi. Catat angka setiap relasi di akhir audit: angka yang berubah pada pemuatan berikutnya adalah tanda pertama bahwa sumbernya berubah.
SELECT k.kirim_id,
(SELECT COUNT(*) FROM gudang g WHERE g.kode = k.kode_gudang) AS cocok
FROM kiriman k;