Terkadang, Anda mungkin ingin menggabungkan data dari satu tabel atau kueri dengan data dari satu atau beberapa tabel lain untuk membuat grup data, atau dengan kata lain daftar yang berisi semua data dari dua tabel atau lebih. Ini adalah tujuan dari kueri gabungan di Access
Untuk memahami kueri gabungan secara efektif, Anda harus terlebih dahulu mengetahui masalah desain kueri pemilihan dasar di Access. Untuk mempelajari selengkapnya tentang mendesain kueri pemilihan, lihat Membuat kueri pemilihan sederhana
Catatan. Konten dalam artikel ini dimaksudkan untuk digunakan dengan database desktop Access. Anda tidak dapat membuat atau menggunakan kueri gabungan di database web Access atau aplikasi web Access
Pelajari contoh kueri gabungan yang bisa dimodifikasi
Jika Anda belum pernah membuat kueri gabungan sebelumnya, Anda bisa menampilkan template Access Northwind untuk mempelajari contoh yang dapat dimodifikasi terlebih dahulu. Anda dapat menemukan templat contoh Northwind di halaman awal Access dengan mengeklik File > Baru atau langsung mengunduh salinan dari lokasi ini. Templat contoh angin utara
Setelah Access membuka database Northwind, tutup dialog masuk yang pertama kali muncul dan perluas Panel Navigasi. Klik bagian atas Panel Navigasi, lalu pilih Tipe Objek untuk mengatur semua objek database menurut tipenya. Selanjutnya, luaskan grup Kueri dan Anda akan melihat kueri yang disebut Transaksi Produk
Kueri gabungan mudah dibedakan dari objek kueri lain karena adanya ikon khusus yang menyerupai dua lingkaran terkait yang mewakili kombinasi dua grup
Tidak seperti kueri pemilihan dan tindakan normal, tabel tidak terkait dalam kueri gabungan, yang berarti akses desainer kueri grafis tidak dapat digunakan untuk membuat atau mengedit kueri gabungan. Anda akan mengalami hal ini jika membuka kueri gabungan dari panel navigasi; . Di bawah perintah tampilan pada tab Beranda, Anda akan melihat bahwa tampilan desain tidak tersedia saat Anda bekerja dengan kueri gabungan. Anda hanya dapat beralih antara tampilan lembar data dan tampilan SQL saat bekerja dengan kueri gabungan
Untuk terus mempelajari contoh kueri gabungan ini, klik Beranda > Tampilan > Tampilan SQL untuk menampilkan sintaks SQL yang mendefinisikannya. Dalam ilustrasi ini, kami telah menambahkan beberapa spasi ekstra di SQL sehingga Anda dapat dengan mudah melihat berbagai bagian yang menyusun kueri gabungan
Mari pelajari sintaks SQL dari kueri gabungan ini dari database Northwind secara mendetail
SELECT Customers.Company, Customers.[Last Name], Customers.[First Name] FROM Customers UNION SELECT Suppliers.Company, Suppliers.[Last Name], Suppliers.[First Name] FROM Suppliers UNION SELECT Employees.Company, Employees.[Last Name], Employees.[First Name] FROM Employees ORDER BY [Last Name], [First Name];_2
Bagian pertama dan ketiga dari pernyataan SQL ini pada dasarnya adalah dua kueri pemilihan. Kueri ini mengambil dua kumpulan data yang berbeda, satu dari tabel Pesanan Produk dan yang lainnya dari tabel Pembelian Produk
Bagian kedua dari pernyataan SQL ini adalah kata kunci UNION yang memberi tahu Access bahwa kueri ini akan menggabungkan dua kumpulan data ini
Bagian terakhir dari pernyataan SQL ini menentukan urutan kombinasi data menggunakan pernyataan ORDER BY. Dalam contoh ini, Access akan mengurutkan semua data berdasarkan bidang TanggalPesanan dalam urutan menurun
Catatan. Kueri gabungan selalu hanya baca di Access. Anda tidak dapat mengubah nilai apa pun dalam tampilan lembar data
Buat kueri gabungan dengan membuat dan menggabungkan kueri pemilihan
Meskipun kueri gabungan dapat dibuat dengan langsung mengetikkan sintaks SQL dalam tampilan SQL, Anda dapat membuatnya lebih mudah dengan memecahnya menjadi beberapa bagian dengan kueri pemilihan. Anda kemudian dapat menyalin dan menempelkan bagian SQL ke dalam kueri gabungan
Jika Anda tidak ingin membaca langkah-langkahnya dan ingin langsung melihat contoh yang tersedia, lihat bagian selanjutnya,
Pada tab Buat, di grup Kueri, klik Desain Kueri
Klik dua kali tabel yang memiliki bidang yang ingin Anda sertakan. Tabel ditambahkan ke jendela desain kueri
Di jendela desain kueri, klik dua kali setiap bidang yang ingin Anda sertakan. Saat Anda memilih bidang, pastikan Anda menambahkan jumlah bidang yang sama, dalam urutan yang sama, yang Anda tambahkan ke kueri pemilihan lainnya. Perhatikan baik-baik tipe data bidang, dan pastikan bidang memiliki tipe data yang kompatibel di posisi yang sama di kueri lain yang Anda gabungkan. Misalnya, jika kueri pemilihan pertama Anda memiliki lima bidang, bidang pertama berisi data tanggal/waktu, pastikan setiap kueri pemilihan lain yang Anda gabungkan juga memiliki lima bidang, dan bidang pertama berisi data tanggal/waktu, dan seterusnya
Alternatifnya, tambahkan kriteria ke bidang Anda dengan mengetik ekspresi yang sesuai di baris Kriteria kisi bidang
Setelah Anda selesai menambahkan bidang dan kriteria bidang, Anda harus menjalankan kueri pemilihan dan meninjau hasilnya. Pada tab Desain, di grup Hasil, klik Jalankan
Pindahkan kueri ke tampilan Desain
Simpan kueri pemilihan, dan biarkan terbuka
Ulangi prosedur ini untuk setiap kueri pemilihan yang ingin Anda gabungkan
Setelah Anda membuat kueri pemilihan, saatnya menggabungkannya. Pada langkah ini, Anda membuat kueri gabungan dengan menyalin dan menempelkan pernyataan SQL
Pada tab Buat, di grup Kueri, klik Desain Kueri
Pada tab Desain, di grup Kueri, klik Kombinasi. Access menyembunyikan jendela desain kueri dan memperlihatkan tab objek tampilan SQL. Untuk saat ini, tab objek tampilan SQL kosong
Klik tab untuk kueri pemilihan pertama yang ingin Anda gabungkan dalam kueri gabungan
Pada tab Beranda, klik Tampilan > Tampilan SQL
Salin pernyataan SQL untuk kueri pemilihan. Klik tab untuk kueri gabungan yang Anda mulai buat sebelumnya
Tempelkan pernyataan SQL untuk kueri pemilihan ke dalam tab objek tampilan SQL dari kueri gabungan
Hapus titik koma [;] di akhir pernyataan SQL kueri pemilihan
Tekan Enter untuk memindahkan kursor ke bawah satu baris, lalu ketik UNION pada baris baru
Klik tab untuk kueri pemilihan berikutnya yang ingin Anda gabungkan dalam kueri gabungan
Ulangi langkah 5 hingga 10 hingga Anda selesai menyalin dan menempelkan semua pernyataan SQL untuk kueri pemilihan ke dalam jendela tampilan SQL dari kueri gabungan. Jangan hapus titik koma atau ketik apa pun setelah pernyataan SQL untuk kueri pemilihan terakhir
Pada tab Desain, di grup Hasil, klik Jalankan
Hasil kueri gabungan akan muncul di tampilan Lembar Data
Tonton contoh membuat kueri gabungan
Berikut adalah contoh yang dapat Anda buat ulang dalam contoh database Northwind. Kueri gabungan ini mengumpulkan nama orang dari tabel Pelanggan dan menggabungkannya dengan nama orang dari tabel Pemasok. Jika Anda ingin mengikuti, lakukan langkah-langkah ini dalam contoh salinan database Northwind Anda
Berikut adalah langkah-langkah yang diperlukan untuk membuat contoh ini
Buat dua kueri pemilihan yang disebut Query1 dan Query2 dengan masing-masing tabel Pelanggan dan Pemasok sebagai sumber data. Gunakan bidang Nama Depan dan Nama Belakang sebagai nilai tampilan
Buat kueri baru bernama Query3 tanpa sumber data awal, lalu klik perintah Gabungkan pada tab Desain untuk membuat kueri ini menjadi kueri Gabungan
Salin dan tempel pernyataan SQL dari Query1 dan Query2 ke Query3. Pastikan untuk menghapus titik koma ekstra dan tambahkan kata kunci UNION. Kemudian, Anda dapat memeriksa hasilnya di tampilan lembar data
Tambahkan klausa sortir ke salah satu kueri, lalu tempelkan pernyataan ORDER BY ke dalam tampilan SQL dari kueri gabungan. Perhatikan bahwa di Query3, kueri gabungan, saat pengurutan ditambahkan, titik koma pertama dihapus, lalu nama tabel dari nama bidang
SQL terakhir yang menggabungkan dan mengurutkan nama untuk kueri gabungan contoh ini adalah sebagai berikut
SELECT Customers.Company, Customers.[Last Name], Customers.[First Name] FROM Customers UNION SELECT Suppliers.Company, Suppliers.[Last Name], Suppliers.[First Name] FROM Suppliers UNION SELECT Employees.Company, Employees.[Last Name], Employees.[First Name] FROM Employees ORDER BY [Last Name], [First Name];
_3
Jika Anda terbiasa menulis sintaks SQL, tentu saja Anda dapat menulis pernyataan SQL Anda sendiri untuk menggabungkan kueri langsung ke tampilan SQL. Namun, Anda harus mengikuti pendekatan menyalin dan menempelkan SQL dari objek kueri lainnya. Setiap kueri bisa jauh lebih rumit daripada contoh kueri pemilihan sederhana yang digunakan di sini. Sebaiknya Anda membuat dan menguji setiap kueri dengan hati-hati sebelum menggabungkannya dalam kueri gabungan. Jika kueri gabungan gagal dijalankan, Anda dapat menyesuaikan setiap kueri satu per satu hingga berhasil dijalankan, lalu membuat ulang kueri gabungan dengan sintaks yang benar
Tinjau bagian selanjutnya dari artikel ini untuk mempelajari lebih lanjut tips dan trik tentang penggunaan kueri bergabung
Menggabungkan tiga atau lebih tabel dan kueri dalam kueri gabungan
Pada contoh dari bagian sebelumnya yang menggunakan database Northwind, hanya data dari dua tabel yang digabungkan. Namun, Anda bisa dengan mudah menggabungkan tiga tabel atau lebih dalam kueri gabungan. Misalnya, jika menggunakan contoh sebelumnya, Anda juga bisa menyertakan nama karyawan di output kueri. Anda dapat menyelesaikan tugas dengan menambahkan kueri ketiga dan menggabungkannya dengan pernyataan SQL sebelumnya dan kata kunci UNION tambahan seperti ini
SELECT Customers.Company, Customers.[Last Name], Customers.[First Name] FROM Customers UNION SELECT Suppliers.Company, Suppliers.[Last Name], Suppliers.[First Name] FROM Suppliers UNION SELECT Employees.Company, Employees.[Last Name], Employees.[First Name] FROM Employees ORDER BY [Last Name], [First Name];_4
Saat melihat hasilnya dalam tampilan lembar data, semua karyawan akan dicantumkan dengan contoh nama perusahaan, yang mungkin tidak terlalu berguna. Jika Anda ingin bidang menunjukkan apakah seseorang adalah pegawai kantor, dari pemasok, atau dari pelanggan, Anda bisa menyertakan nilai tetap sebagai alternatif nama perusahaan. Berikut tampilan SQLnya
SELECT Customers.Company, Customers.[Last Name], Customers.[First Name] FROM Customers UNION SELECT Suppliers.Company, Suppliers.[Last Name], Suppliers.[First Name] FROM Suppliers UNION SELECT Employees.Company, Employees.[Last Name], Employees.[First Name] FROM Employees ORDER BY [Last Name], [First Name];5
Berikut adalah tampilan hasil yang akan muncul pada tampilan lembar data. Access menampilkan lima contoh data ini
Pekerjaan
Nama keluarga
Nama depan
Pekerja kantor
Faradilla
Nadia
Pekerja kantor
Giyanti
Menyesuaikan
Pemasok
Giandra
Surya
Pelanggan
Gunawan
Daniel
Pelanggan
Galih Saputra
Anton
Kueri di atas dapat dikurangi lebih lanjut karena Access hanya membaca nama bidang keluaran dari kueri pertama dalam kueri gabungan. Di sini, kami telah menghapus keluaran dari bagian kedua dan ketiga kueri
SELECT Customers.Company, Customers.[Last Name], Customers.[First Name] FROM Customers UNION SELECT Suppliers.Company, Suppliers.[Last Name], Suppliers.[First Name] FROM Suppliers UNION SELECT Employees.Company, Employees.[Last Name], Employees.[First Name] FROM Employees ORDER BY [Last Name], [First Name];_6
Memfilter dalam kueri gabungan
Dalam kueri gabungan Access, pengurutan hanya diperbolehkan satu kali, tetapi setiap kueri bisa difilter satu per satu. Menggunakan kueri gabungan dari bagian sebelumnya, berikut adalah contoh pemfilteran setiap kueri dengan menambahkan klausa WHERE
SELECT Customers.Company, Customers.[Last Name], Customers.[First Name] FROM Customers UNION SELECT Suppliers.Company, Suppliers.[Last Name], Suppliers.[First Name] FROM Suppliers UNION SELECT Employees.Company, Employees.[Last Name], Employees.[First Name] FROM Employees ORDER BY [Last Name], [First Name];_7
Beralih ke tampilan lembar data dan Anda akan melihat hasil yang mirip dengan ini
Pekerjaan
Nama keluarga
Nama depan
Pemasok
Anggraeni
Elisa A
Pekerja kantor
Faradilla
Nadia
Pelanggan
Haryono
Johnny
Pekerja kantor
Hani Lesmana
Anita
Pemasok
Herlina Ernawati
Amel
Pelanggan
Maryanto
kata sandi
Pemasok
Santoso
Michael
Pemasok
Satria
Laksamana
Pekerja kantor
Tantowi
Syamsul
Pemasok
kemenangan
Gambar
Pekerja kantor
Zainuddin
Rian
Menggabungkan tipe data
Jika kueri yang digabungkan sangat berbeda, bidang keluaran harus menggabungkan data dari tipe yang berbeda. Jika demikian, kueri gabungan seringkali hanya mengembalikan hasil sebagai tipe data teks karena tipe data tersebut dapat berisi teks dan angka
Untuk memahami cara kerjanya, kami akan menggunakan kueri gabungan Transaksi Produk dalam contoh database Northwind. Buka contoh database, lalu buka kueri Transaksi Produk di tampilan lembar data. Sepuluh data terakhir akan terlihat mirip dengan keluaran ini
ID Produk
Tanggal pemesanan
Nama perusahaan
Transaksi
Jumlah
77
22/1/2006
Pemasok B
Pembelian
60
80
22/1/2006
Pemasok D
Pembelian
75
81
22/1/2006
Pemasok A
Pembelian
125
81
22/1/2006
Pemasok A
Pembelian
200
7
20/1/2006
Perusahaan D
Penjualan
10
51
20/1/2006
Perusahaan D
Penjualan
10
80
20/1/2006
Perusahaan D
Penjualan
10
34
15/1/2006
Perusahaan AA
Penjualan
100
80
15/1/2006
Perusahaan AA
Penjualan
30
Katakanlah Anda ingin bidang Jumlah dipisahkan menjadi dua, yaitu Beli dan Jual. Anda juga ingin mengisi nilai nol tetap untuk bidang tanpa nilai. Berikut adalah tampilan SQL untuk kueri gabungan ini
SELECT Customers.Company, Customers.[Last Name], Customers.[First Name] FROM Customers UNION SELECT Suppliers.Company, Suppliers.[Last Name], Suppliers.[First Name] FROM Suppliers UNION SELECT Employees.Company, Employees.[Last Name], Employees.[First Name] FROM Employees ORDER BY [Last Name], [First Name];_8
Jika Anda beralih ke tampilan lembar data, Anda akan melihat sepuluh data terakhir ditampilkan sebagai berikut
ID Produk
Tanggal pemesanan
Nama perusahaan
Transaksi
Membelinya
Menjual
74
22/1/2006
Pemasok B
Pembelian
tanggal
0
77
22/1/2006
Pemasok B
Pembelian
60
0
80
22/1/2006
Pemasok D
Pembelian
75
0
81
22/1/2006
Pemasok A
Pembelian
125
0
81
22/1/2006
Pemasok A
Pembelian
200
0
7
20/1/2006
Perusahaan D
Penjualan
0
10
51
20/1/2006
Perusahaan D
Penjualan
0
10
80
20/1/2006
Perusahaan D
Penjualan
0
10
34
15/1/2006
Perusahaan AA
Penjualan
0
100
80
15/1/2006
Perusahaan AA
Penjualan
0
30
Masih dengan contoh ini, bagaimana jika ingin field dengan nilai null kosong?
SELECT Customers.Company, Customers.[Last Name], Customers.[First Name] FROM Customers UNION SELECT Suppliers.Company, Suppliers.[Last Name], Suppliers.[First Name] FROM Suppliers UNION SELECT Employees.Company, Employees.[Last Name], Employees.[First Name] FROM Employees ORDER BY [Last Name], [First Name];_9
Namun, seperti yang dapat dilihat jika Anda beralih ke tampilan lembar data, kini Anda mendapatkan hasil yang tidak terduga. Di kolom Beli, setiap bidang kosong
ID Produk
Tanggal pemesanan
Nama perusahaan
Transaksi
Membelinya
Menjual
74
22/1/2006
Pemasok B
Pembelian
77
22/1/2006
Pemasok B
Pembelian
80
22/1/2006
Pemasok D
Pembelian
81
22/1/2006
Pemasok A
Pembelian
81
22/1/2006
Pemasok A
Pembelian
7
20/1/2006
Perusahaan D
Penjualan
10
51
20/1/2006
Perusahaan D
Penjualan
10
80
20/1/2006
Perusahaan D
Penjualan
10
34
15/1/2006
Perusahaan AA
Penjualan
100
80
15/1/2006
Perusahaan AA
Penjualan
30
Ini terjadi karena Access menentukan tipe data bidang dari kueri pertama. Dalam contoh ini, Null bukan angka
Oleh karena itu, apa yang terjadi jika Anda mencoba memasukkan string kosong untuk nilai bidang kosong?
SELECT "Customer" As Employment, Customers.[Last Name], Customers.[First Name] FROM Customers UNION SELECT "Supplier" As Employment, Suppliers.[Last Name], Suppliers.[First Name] FROM Suppliers UNION SELECT "In-house" As Employment, Employees.[Last Name], Employees.[First Name] FROM Employees ORDER BY [Last Name], [First Name];_0
Saat Anda beralih ke tampilan lembar data, Anda akan melihat bahwa Access mengambil nilai beli, tetapi mengubahnya menjadi teks. Anda dapat mengetahui bahwa ini adalah nilai teks karena rata kiri dalam tampilan lembar data. String kosong di kueri non-numerik pertama menyebabkan Anda melihat hasil ini. Anda juga akan melihat bahwa nilai jual juga dikonversi menjadi teks karena catatan pembelian berisi string kosong
ID Produk
Tanggal pemesanan
Nama perusahaan
Transaksi
Membelinya
Menjual
74
22/1/2006
Pemasok B
Pembelian
tanggal
77
22/1/2006
Pemasok B
Pembelian
60
80
22/1/2006
Pemasok D
Pembelian
75
81
22/1/2006
Pemasok A
Pembelian
125
81
22/1/2006
Pemasok A
Pembelian
200
7
20/1/2006
Perusahaan D
Penjualan
10
51
20/1/2006
Perusahaan D
Penjualan
10
80
20/1/2006
Perusahaan D
Penjualan
10
34
15/1/2006
Perusahaan AA
Penjualan
100
80
15/1/2006
Perusahaan AA
Penjualan
30
Lantas, bagaimana cara memecahkan teka-teki ini?
Solusinya adalah memaksa kueri untuk menganggap nilai bidang sebagai angka. Ini bisa dilakukan dengan ekspresi
SELECT "Customer" As Employment, Customers.[Last Name], Customers.[First Name] FROM Customers UNION SELECT "Supplier" As Employment, Suppliers.[Last Name], Suppliers.[First Name] FROM Suppliers UNION SELECT "In-house" As Employment, Employees.[Last Name], Employees.[First Name] FROM Employees ORDER BY [Last Name], [First Name];_1
Kondisi yang akan diperiksa, False, tidak akan bernilai True, sehingga ekspresi akan selalu mengembalikan Null, tetapi Access masih mengevaluasi kedua opsi output dan menentukan output berupa angka atau Null
Inilah cara menggunakan ungkapan ini dalam contoh yang dapat dimodifikasi
SELECT "Customer" As Employment, Customers.[Last Name], Customers.[First Name] FROM Customers UNION SELECT "Supplier" As Employment, Suppliers.[Last Name], Suppliers.[First Name] FROM Suppliers UNION SELECT "In-house" As Employment, Employees.[Last Name], Employees.[First Name] FROM Employees ORDER BY [Last Name], [First Name];_2
Perlu diingat bahwa mengubah kueri kedua tidak boleh dilakukan
Jika Anda beralih ke tampilan lembar data, Anda akan melihat hasil yang diinginkan
ID Produk
Tanggal pemesanan
Nama perusahaan
Transaksi
Membelinya
Menjual
74
22/1/2006
Pemasok B
Pembelian
tanggal
77
22/1/2006
Pemasok B
Pembelian
60
80
22/1/2006
Pemasok D
Pembelian
75
81
22/1/2006
Pemasok A
Pembelian
125
81
22/1/2006
Pemasok A
Pembelian
200
7
20/1/2006
Perusahaan D
Penjualan
10
51
20/1/2006
Perusahaan D
Penjualan
10
80
20/1/2006
Perusahaan D
Penjualan
10
34
15/1/2006
Perusahaan AA
Penjualan
100
80
15/1/2006
Perusahaan AA
Penjualan
30
Metode alternatif untuk mendapatkan hasil yang sama adalah menambahkan kueri dalam kueri gabungan dengan kueri lain di awal
SELECT "Customer" As Employment, Customers.[Last Name], Customers.[First Name] FROM Customers UNION SELECT "Supplier" As Employment, Suppliers.[Last Name], Suppliers.[First Name] FROM Suppliers UNION SELECT "In-house" As Employment, Employees.[Last Name], Employees.[First Name] FROM Employees ORDER BY [Last Name], [First Name];_3
Untuk setiap bidang, Access mengembalikan nilai tetap dari tipe data yang ditentukan. Tentu saja, Anda tidak ingin keluaran kueri ini mengganggu hasil, jadi Anda perlu menyertakan klausa WHERE ke False
SELECT "Customer" As Employment, Customers.[Last Name], Customers.[First Name] FROM Customers UNION SELECT "Supplier" As Employment, Suppliers.[Last Name], Suppliers.[First Name] FROM Suppliers UNION SELECT "In-house" As Employment, Employees.[Last Name], Employees.[First Name] FROM Employees ORDER BY [Last Name], [First Name];_4
Ini adalah trik sederhana karena selalu salah dan kueri tidak mengembalikan apa pun. Gabungkan pernyataan ini dengan SQL yang ada dan pernyataan lengkap telah berhasil dibuat, yaitu
SELECT "Customer" As Employment, Customers.[Last Name], Customers.[First Name] FROM Customers UNION SELECT "Supplier" As Employment, Suppliers.[Last Name], Suppliers.[First Name] FROM Suppliers UNION SELECT "In-house" As Employment, Employees.[Last Name], Employees.[First Name] FROM Employees ORDER BY [Last Name], [First Name];_5
Catatan. Kueri gabungan dalam contoh ini menggunakan database Northwind mengembalikan 100 data, sedangkan dua kueri individu mengembalikan 58 dan 43 data dengan total 101 data. Perbedaan ini terjadi karena kedua record tersebut tidak unik. Lihat bagian untuk mempelajari cara mengatasi skenario ini dengan menggunakan UNION ALL
Menambahkan total dalam kueri gabungan
Kasus khusus untuk kueri gabungan adalah menggabungkan rangkaian data dengan data yang berisi jumlah dari satu atau beberapa bidang
Berikut adalah contoh lain yang dapat Anda buat di contoh database Northwind untuk menunjukkan cara mendapatkan total dalam kueri gabungan
Buat kueri sederhana baru untuk menampilkan pembelian bir [ID Produk=34 di database Northwind] menggunakan sintaks SQL berikut
SELECT "Customer" As Employment, Customers.[Last Name], Customers.[First Name] FROM Customers UNION SELECT "Supplier" As Employment, Suppliers.[Last Name], Suppliers.[First Name] FROM Suppliers UNION SELECT "In-house" As Employment, Employees.[Last Name], Employees.[First Name] FROM Employees ORDER BY [Last Name], [First Name];
_6Beralih ke tampilan lembar data, dan Anda akan melihat empat pembelian
Tanggal Diterima
Jumlah
22/1/2006
100
22/1/2006
60
4/4/2006
50
5/4/2006
300
Untuk mendapatkan totalnya, buat kueri agregasi sederhana menggunakan SQL berikut
SELECT "Customer" As Employment, Customers.[Last Name], Customers.[First Name] FROM Customers UNION SELECT "Supplier" As Employment, Suppliers.[Last Name], Suppliers.[First Name] FROM Suppliers UNION SELECT "In-house" As Employment, Employees.[Last Name], Employees.[First Name] FROM Employees ORDER BY [Last Name], [First Name];
_7Beralih ke tampilan lembar data, dan Anda hanya akan melihat satu data
MaxDate Diterima
Jumlah total
5/4/2006
510
Gabungkan dua kueri ini menjadi kueri gabungan untuk menambahkan data dengan jumlah total ke data pembelian
SELECT "Customer" As Employment, Customers.[Last Name], Customers.[First Name] FROM Customers UNION SELECT "Supplier" As Employment, Suppliers.[Last Name], Suppliers.[First Name] FROM Suppliers UNION SELECT "In-house" As Employment, Employees.[Last Name], Employees.[First Name] FROM Employees ORDER BY [Last Name], [First Name];
_8Beralihlah ke tampilan lembar data, dan Anda akan melihat empat pembelian dengan jumlah masing-masing, diikuti dengan data yang menjumlahkan jumlahnya
Tanggal Diterima
Jumlah
22/1/2006
60
22/1/2006
100
4/4/2006
50
5/4/2006
300
5/4/2006
510
Penjelasan di atas mencakup dasar-dasar penambahan total ke kueri gabungan. Anda mungkin juga ingin menyertakan nilai tetap di kedua kueri seperti "Detail" dan "Total" untuk memisahkan total data secara visual dari data lainnya. Anda dapat meninjau penggunaan nilai konstanta di bagian tersebut
Bekerja dengan data berbeda dalam kueri gabungan menggunakan UNION ALL
Gabungkan kueri di Access secara default hanya menyertakan data berbeda. Namun, bagaimana jika Anda ingin memasukkan semua data?
Di bagian sebelumnya, kami menunjukkan cara membuat total dalam kueri gabungan. Ubah SQL kueri gabungan untuk menyertakan Product ID= 48
SELECT "Customer" As Employment, Customers.[Last Name], Customers.[First Name] FROM Customers UNION SELECT "Supplier" As Employment, Suppliers.[Last Name], Suppliers.[First Name] FROM Suppliers UNION SELECT "In-house" As Employment, Employees.[Last Name], Employees.[First Name] FROM Employees ORDER BY [Last Name], [First Name];_9
Beralih ke tampilan lembar data, dan Anda akan melihat hasil yang cenderung kurang akurat
Tanggal Diterima
Jumlah
22/1/2006
100
22/1/2006
200
Tentu saja, satu data tidak mengembalikan jumlah total dua kali lipat
Hal ini terjadi karena dalam satu hari jumlah coklat yang sama terjual dua kali, seperti yang tercatat di tabel Rincian Pesanan Pembelian. Berikut adalah hasil kueri pemilihan sederhana yang menampilkan kedua data dalam contoh database Northwind
ID Pesanan Pembelian
Produk
Jumlah
100
Cokelat Pedagang Northwind
100
92
Cokelat Pedagang Northwind
100
Dalam kueri gabungan yang disebutkan sebelumnya, Anda dapat melihat bahwa bidang ID Pesanan Pembelian tidak disertakan dan kedua bidang tersebut tidak terdiri dari dua rekaman berbeda
Jika ingin menyertakan semua catatan, gunakan UNION ALL alih-alih UNION di SQL Anda. Kemungkinan besar ini akan berdampak pada pengurutan hasil, jadi Anda perlu menyertakan klausa ORDER BY untuk menentukan urutan pengurutan. Ini adalah SQL yang dimodifikasi dari contoh sebelumnya
SELECT "Customer" As Employment, [Last Name], [First Name] FROM Customers UNION SELECT "Supplier", [Last Name], [First Name] FROM Suppliers UNION SELECT "In-house", [Last Name], [First Name] FROM Employees ORDER BY [Last Name], [First Name];_0
Beralih ke tampilan lembar data, dan selain total, Anda akan melihat semua detail sebagai data terakhir
Tanggal Diterima
Total
Jumlah
22/1/2006
100
22/1/2006
100
22/1/2006
Total
200
Menggunakan kueri gabungan untuk memfilter data dalam formulir melalui kontrol kotak kombo
Kueri gabungan sering digunakan sebagai sumber data untuk kontrol kotak kombo pada formulir. Anda dapat menggunakan kotak kombo untuk memilih nilai untuk memfilter data formulir. Misalnya memfilter data karyawan menurut kotanya
Untuk mengetahui cara kerjanya, berikut adalah contoh lain yang dapat Anda buat di contoh database Northwind untuk menjelaskan skenario ini
Buat kueri pemilihan sederhana menggunakan sintaks SQL ini
SELECT "Customer" As Employment, [Last Name], [First Name] FROM Customers UNION SELECT "Supplier", [Last Name], [First Name] FROM Suppliers UNION SELECT "In-house", [Last Name], [First Name] FROM Employees ORDER BY [Last Name], [First Name];
_1Beralih ke tampilan lembar data, dan Anda akan melihat hasil berikut
Kota
Saring
Semarang
Semarang
Bandung
Bandung
obrolan
obrolan
Kediri
Kediri
Semarang
Semarang
obrolan
obrolan
Semarang
Semarang
obrolan
obrolan
Semarang
Semarang
Saat melihat hasilnya, Anda mungkin tidak melihat banyak nilai. Luaskan kueri dan ubah menjadi kueri gabungan menggunakan SQL berikut
SELECT "Customer" As Employment, [Last Name], [First Name] FROM Customers UNION SELECT "Supplier", [Last Name], [First Name] FROM Suppliers UNION SELECT "In-house", [Last Name], [First Name] FROM Employees ORDER BY [Last Name], [First Name];
_2Beralih ke tampilan lembar data, dan Anda akan melihat hasil berikut
Kota
Saring
*
Bandung
Bandung
Kediri
Kediri
obrolan
obrolan
Semarang
Semarang
Access melakukan penggabungan sembilan catatan yang sebelumnya ditampilkan dengan nilai bidang tetap, yaitu dan "*".
Karena klausa gabungan ini tidak berisi UNION ALL, Access hanya mengembalikan data yang berbeda. Artinya, setiap kota dikembalikan hanya sekali dengan nilai tetap yang identik
Setelah Anda memiliki kueri gabungan lengkap yang menampilkan nama kota satu kali dan opsi yang secara efektif memilih semua kota, Anda bisa menggunakan kueri ini sebagai sumber data untuk kotak kombo pada formulir. Dengan menggunakan contoh ini sebagai model, Anda dapat membuat kontrol kotak kombo pada formulir, menyetel kueri ini sebagai sumber datanya, menyetel properti Lebar Kolom dari kolom Filter ke 0 [nol] untuk menyembunyikannya secara visual, lalu menyetel Kolom Terikat properti ke 1 untuk menampilkan indeks kolom kedua. Di properti Filter dari formulir itu sendiri, Anda dapat menambahkan kode seperti berikut untuk mengaktifkan filter formulir menggunakan nilai yang dipilih di kontrol kotak kombo
SELECT "Customer" As Employment, [Last Name], [First Name] FROM Customers UNION SELECT "Supplier", [Last Name], [First Name] FROM Suppliers UNION SELECT "In-house", [Last Name], [First Name] FROM Employees ORDER BY [Last Name], [First Name];
_3Pengguna formulir kemudian dapat memfilter data formulir untuk nama kota tertentu atau memilih untuk menampilkan semua data untuk semua kota
Apa gunanya fungsi concat[]?
Fungsi CONCAT menggabungkan teks dari beberapa rentang dan/atau string, tetapi tidak menyediakan pemisah atau argumen IgnoreEmpty . CONCAT menggantikan fungsi CONCATENATE.Apa itu perintah concat?
CONCAT. Menggabungkan dua atau lebih data dalam bentuk string . CONCAT_WS. Gabungkan dua atau lebih string data dengan pemisah. FORMAT. Menentukan format yang ingin Anda gunakan pada string.