Cara menggunakan concat postgresql

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

Cara menggunakan concat postgresql

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

Cara menggunakan concat postgresql

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,

  1. Pada tab Buat, di grup Kueri, klik Desain Kueri

  2. Klik dua kali tabel yang memiliki bidang yang ingin Anda sertakan. Tabel ditambahkan ke jendela desain kueri

  3. 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

  4. Alternatifnya, tambahkan kriteria ke bidang Anda dengan mengetik ekspresi yang sesuai di baris Kriteria kisi bidang

  5. Setelah Anda selesai menambahkan bidang dan kriteria bidang, Anda harus menjalankan kueri pemilihan dan meninjau hasilnya. Pada tab Desain, di grup Hasil, klik Jalankan

  6. Pindahkan kueri ke tampilan Desain

  7. Simpan kueri pemilihan, dan biarkan terbuka

  8. 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

  1. Pada tab Buat, di grup Kueri, klik Desain Kueri

  2. 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

  3. Klik tab untuk kueri pemilihan pertama yang ingin Anda gabungkan dalam kueri gabungan

  4. Pada tab Beranda, klik Tampilan > Tampilan SQL

  5. Salin pernyataan SQL untuk kueri pemilihan. Klik tab untuk kueri gabungan yang Anda mulai buat sebelumnya

  6. Tempelkan pernyataan SQL untuk kueri pemilihan ke dalam tab objek tampilan SQL dari kueri gabungan

  7. Hapus titik koma (;) di akhir pernyataan SQL kueri pemilihan

  8. Tekan Enter untuk memindahkan kursor ke bawah satu baris, lalu ketik UNION pada baris baru

  9. Klik tab untuk kueri pemilihan berikutnya yang ingin Anda gabungkan dalam kueri gabungan

  10. 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

  11. 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

Cara menggunakan concat postgresql

Berikut adalah langkah-langkah yang diperlukan untuk membuat contoh ini

  1. 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

  2. Buat kueri baru bernama Query3 tanpa sumber data awal, lalu klik perintah Gabungkan pada tab Desain untuk membuat kueri ini menjadi kueri Gabungan

  3. 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

  4. 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

  5. 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

  1. 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];
    _6
  2. Beralih 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

  3. 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];
    _7
  4. Beralih ke tampilan lembar data, dan Anda hanya akan melihat satu data

    MaxDate Diterima

    Jumlah total

    5/4/2006

    510

  5. 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];
    _8
  6. Beralihlah 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

  1. 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];
    _1
  2. Beralih 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

  3. 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];
    _2
  4. Beralih 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

  5. 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];
    _3

    Pengguna 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.