VIEW
VIEW adalah query yang disimpan, bentuknya menyerupai table. View bersifat logic, artinya tidak memiliki data fisik karena data fisiknya ada di table. View adalah cara menampilkan/menyajikan data yang ada di table.
Ada beberapa bentuk view :
1.Diambil dari 1 tabel (seluruh kolom, sebagian kolom, calculated colomn, seluruh record, sebagian record)
2.Diambil dari beberapa table (syaratnya harus ada relasi antar table)
a. INNER JOIN
b. LEFT OUTER JOIN
c. RIGHT OUTER JOIN
d. FULL OUTER JOIN
e. UNION (syaratnya field yang di-UNION harus sejenis)
3.Hasil dari Pengelompokkan Data (Group By)
4.Hasil dari Pivot Table (Cross Table)
Union all digunakan untuk menggabungkan dua buah tabel menjadi sebuah view.
Contoh ada dua buah tabel : TB1 (field1, field2, field3) dan TB2 (field1, field2)
Jika kedua tabel ingin disatukan, maka perintah union all sbb :
SELECT field1, field2 FROM TB1
UNION ALL
SELECT field1, field2 FROM TB2
Syarat Union:
1. Nama column sama
2. Tipe data sama
3. Jumlah column sama
example:
SELECT Kode,Nama from tbSupplier
UNION ALL
SELECT Kd as Kode,Nm as Nama from tbPelanggan
•Buat View Pelanggan yang tidak bertransaksi di Bulan Juni 2005. (Kode Pelanggan, Nama Pelanggan)
SELECT dbo.Pelanggan.KodePelanggan, dbo.FJ.TglFJ
FROM dbo.FJ RIGHT OUTER JOIN
dbo.Pelanggan ON dbo.FJ.KodePelanggan = dbo.Pelanggan.KodePelanggan
WHERE (dbo.Pelanggan.KodePelanggan NOT IN
(SELECT Pelanggan_1.KodePelanggan
FROM dbo.FJ AS FJ_1 RIGHT OUTER JOIN
dbo.Pelanggan AS Pelanggan_1 ON FJ_1.KodePelanggan = Pelanggan_1.KodePelanggan
WHERE (FJ_1.TglFJ BETWEEN '6/1/2005' AND '6/30/2005 23:59:59')))
•Buat View Barang-barang yang Terjual di Juni dan Juli 2005, khusus yang bertanda CEK (field Cek bernilai true) (Tgl FJ, No FJ, Kode Barang, Nama Barang, Qty, Harga, Cek)
SELECT DISTINCT dbo.FJ.TglFJ, dbo.Barang.NamaBarang, dbo.Barang.Cek, dbo.FJDet.KodeBarang
FROM dbo.FJ INNER JOIN
dbo.FJDet ON dbo.FJ.NoFJ = dbo.FJDet.NoFJ INNER JOIN
dbo.Barang ON dbo.FJDet.KodeBarang = dbo.Barang.KodeBarang
WHERE (dbo.Barang.Cek = 1) AND (dbo.FJ.TglFJ BETWEEN CONVERT(DATETIME, '2005-06-01 00:00:00', 102) AND CONVERT(DATETIME, '2005-07-31 23:59:59',
102))
Tidak ada komentar:
Posting Komentar