Union Except Intersect Table MS SQL Server

Pada MS SQL Server tersedia fasilitas Union, Excepet dan Intersect yang digunakan untuk mempermudah query dalam sebuah table, ada beberapa perbedaan penggunaan pada ketiga fasilitas tersebut.



  • Union

Dipergunakan untuk menggabungkan dua atau lebih hasil query select kedalam satu buah output.



untuk memahami pernggunaan union sql server perhatikan contoh dibawah ini, buat table pelanggan dan table perusahaan yang nantinya dari kedua table tersebut akan digabungkan

CREATE TABLE pelanggan
(
   id_pelanggan int,
   nama_depan varchar(64),
   nama_belakang varchar(64),
   nomor_telpon varchar(30),
   alamat varchar(100)
)

CREATE TABLE perusahaan
(
  id_perusahaan int,
  nama_pemilik varchar(64),
  nama_perusahaan varchar(64),
  nomor_telpon varchar(30),
  alamat varchar(100)
)

setelah membuat table di MS SQL Server setelah itu isikan, dengan dengan data yang ada dibawah ini pada table pelanggan :

INSERT INTO  pelanggan (id_pelanggan,nama_depan,nama_belakang,nomor_telpon,alamat) VALUES ('1','maman','suparman','(+62)8111','jawa barat')

INSERT INTO pelanggan (id_pelanggan,nama_depan,nama_belakang,nomor_telpon,alamat) VALUES ('2','anang','gulali','(+62)8213','kalimantan selatan')

INSERT INTO pelanggan (id_pelanggan,nama_depan,nama_belakang,nomor_telpon,alamat) VALUES ('3','donnie','subara','(+62)8111','jakarta')

INSERT INTO pelanggan (id_pelanggan,nama_depan,nama_belakang,nomor_telpon,alamat) VALUES ('4','imade','nyoman','(+62)8111','denpasar')

dan ini pada table perusahaan

INSERT INTO  perusahaan (id_perusahaan,nama_pemilik,nama_perusahaan,nomor_telpon,alamat) VALUES  ('100', 'jaja', 'bandung enterprise', '(+62)9992','indonesia')

INSERT INTO perusahaan (id_perusahaan,nama_pemilik,nama_perusahaan,nomor_telpon,alamat) VALUES ('200', 'joe', 'banjarlab tbk', '(+62)9995','indonesia')

sehingga terlihat 2 buah table dengan data seperti ini

table pelanggan




table perusahaan



setelah itu baru coba perintah union di ms sql server dengan perintah

SELECT 'pelanggan' as jenis,
                     nomor_telpon,
     alamat
FROM pelanggan
UNION
SELECT 'perusahaan', 
                     nomor_telpon,
                     alamat
FROM perusahaan

hasil yang tampil adalah :



mungkin ada yang bertanya, bagaimana menyatukan kedua table jika ada field yang berbeda, caranya cukup dengan menjadikan alias dari field yang ingin dibuat begitu juga jika field yang berbeda lebih dari satu dapat digabungkan. perhatikan contoh dibawah ini, field nama depan dan nama belakaang dijadikan field kontak yang ada di tabel pelanggan dan field nama_pemilik dan nama_perusahaan digabung juga menjadi field kontak


SELECT 'pelanggan' as jenis,
                     nama_depan+'  '+nama_belakang as kontak,
     nomor_telpon, 
                     alamat
FROM pelanggan
UNION
SELECT 'perusahaan', 
                     nama_pemilik+'  '+nama_perusahaan as kontak,
                     nomor_telpon, 
                     alamat
FROM perusahaan

hasil query penggunaan union akan tampil seperti ini





  • Except

Membandingkan hasil dari dua statemen select dan mengembalikan baris hasil dari statemen select pertama yang tidak ada dalam hasil statemen select yang kedua



untuk memahami maksud dari except buat table dengan struktur dibawah ini

table gudang

create table gudang
(
  kode_brg varchar(5),
  nama_brg varchar(24),
  
)

dan juga buat table penjualan


create table penjualan
(
   id_trans int,
   kode_brg varchar(5),
   jlh_jual int,
  
)

masukan data datanya dengan mengetika query insert ms sql server dibawah ini :

INSERT INTO gudang (kode_brg,nama_brg) VALUES ('A1', 'buku')
INSERT INTO gudang (kode_brg,nama_brg) VALUES ('A2', 'pencil')
INSERT INTO gudang (kode_brg,nama_brg) VALUES ('A3', 'spidol')
INSERT INTO gudang (kode_brg,nama_brg) VALUES ('A4', 'penggaris')
INSERT INTO gudang (kode_brg,nama_brg) VALUES ('A5', 'penghapus')

INSERT INTO penjualan (id_trans,kode_brg,jlh_jual) VALUES ('1','A1','2')
INSERT INTO penjualan (id_trans,kode_brg,jlh_jual) VALUES ('2','A1','1')
INSERT INTO penjualan (id_trans,kode_brg,jlh_jual) VALUES ('3','A2','1')
INSERT INTO penjualan (id_trans,kode_brg,jlh_jual) VALUES ('4','A1','1')
INSERT INTO penjualan (id_trans,kode_brg,jlh_jual) VALUES ('5','A4','2')

menghasilkan hasil data sepeperti ini :






sekarang ketik perintah dibawah ini untuk mengetahui salah satu penggunaan query select except

SELECT 
                 kode_brg   
FROM gudang
EXCEPT
SELECT 
                 kode_brg

FROM penjualan

akan terlihat hasil dari perintah select except dari dua table





  • Intersect

Membandingkan hasil dari dua statemen select dan mengembalikan hasil statemen yang ditemukan pada statemen select pertama dan statemen select yang kedua.

perintah sql intersect yang digunakan seperti ini :
SELECT 
                 kode_brg   
FROM gudang
INTERSECT
SELECT 
                 kode_brg

FROM penjualan
pada percobaan intersect cukup menganti perintah except menjadi intersect seperti perintah dibawah ini maka hasilnya akan terlihat :

terlihat kalau kode_barang yang ditampilkan adalah kode barang yang merupakan hasil dari intersect dari kedua query table.

Demikian tutorial Select Union Except Intersect Table dari Microsoft SQL Server ini, semoga dapat dipahami dan dapat bermanfaat bagi semuanya yang memerlukan informasi ini.


EmoticonEmoticon