PERTEMUAN V – PRAKTIKUM - Subquery
Jawaban
Database :
Download
Soal :
Soal Subquery
--1 Menampilkan informasi data barang yang stoknya
--di atas stok barang Cooler 478 Cool Master (single-row subquery)
SELECT NAMA, STOK
FROM BARANG
WHERE STOK > (SELECT STOK FROM Barang WHERE NAMA='cooler 478 Cool Master')
--2 Menampilkan data barang yang masuk dalam golongan ACCESSORIES (single-row subquery)
SELECT NAMA AS BARANG, STOK
FROM BARANG
WHERE GOLONGAN_ID = (SELECT KODE FROM GOLONGAN WHERE KETERANGAN = 'ACCESSORIES')
--3 Menampilkan data customer yang berasal dari wilayah SRAGEN, KLATEN dan SEMARANG (multi-row subquery)
SELECT NAMA,ALAMAT,WILAYAH_ID
FROM CUSTOMER
WHERE WILAYAH_ID IN (SELECT KODE FROM WILAYAH WHERE KETERANGAN = 'SRAGEN' OR KETERANGAN ='KLATEN' OR KETERANGAN= 'SEMARANG')
--4 Menampilkan golongan barang yang belum ada item barangnya (multi-row subquery)
SELECT KODE, KETERANGAN
FROM GOLONGAN
WHERE KODE NOT IN (select GOLONGAN_ID from BARANG)
--5
SELECT KODE, BARANG.NAMA AS NAMABARANG
FROM BARANG
WHERE KODE IN (SELECT BARANG_ID FROM ITEM_JUAL)
--6 Menampilkan data barang yang sudah pernah dijual dan stoknya habis (multi-row subquery)
SELECT KODE, NAMA
FROM BARANG
WHERE KODE IN(SELECT BARANG_ID FROM ITEM_JUAL) AND STOK IN (SELECT STOK FROM BARANG WHERE STOK=0)
--7 Menampilkan informasi penjualan masing-masing barang (subquery sebagai column expression)
SELECT NAMA AS BARANG,(SELECT SUM(JUMLAH) FROM ITEM_JUAL where BARANG.KODE=ITEM_JUAL.BARANG_ID)
AS [JUMLAH TERJUAL]FROM BARANG
--8 Menampilkan informasi jumlah transaksi masing-masing customer (join dan fungsi aggregate)
SELECT NAMA, COUNT(*) AS [JUMLAH TRANSAKSI]
FROM CUSTOMER INNER JOIN JUAL
ON CUSTOMER.KODE=JUAL.CUSTOMER_ID
GROUP BY NAMA
--9 Menampilkan informasi customer yang jumlah transaksinya di atas
-- customer AGA COMPUTER (join, fungsi aggregate, having dan subquery)
SELECT NAMA, COUNT(*) AS [JUMLAH TRANSAKSI]
FROM CUSTOMER INNER JOIN JUAL
ON CUSTOMER.KODE=JUAL.CUSTOMER_ID
GROUP BY NAMA
HAVING COUNT(*) > (SELECT COUNT(*) FROM JUAL WHERE CUSTOMER_ID = (SELECT KODE FROM CUSTOMER WHERE NAMA = 'AGA COMPUTER'))
--10 Menampilkan informasi mutasi (keluar/masuk) barang (subquery sebagai column expression)
SELECT BARANG.NAMA,(SELECT SUM(JUMLAH) FROM ITEM_BELI WHERE BARANG.KODE=ITEM_BELI.BARANG_ID) as [Jumlah Masuk],
(SELECT SUM(JUMLAH) FROM ITEM_JUAL WHERE BARANG.KODE=ITEM_JUAL.BARANG_ID) [jumlah Keluar], ((SELECT SUM(JUMLAH) FROM ITEM_BELI WHERE BARANG.KODE=ITEM_BELI.BARANG_ID)-(SELECT SUM(JUMLAH) FROM ITEM_JUAL WHERE BARANG.KODE=ITEM_JUAL.BARANG_ID) ) AS SISA
FROM BARANG
SELECT DISTINCT * FROM JUAL
SELECT * FROM ITEM_JUAL
select * from GOLONGAN
select GOLONGAN_ID, SUM(STOK) from BARANG GROUP BY GOLONGAN_ID
SELECT nama AS barang, (SELECT SUM(jumlah) FROM item_jual WHERE barang_id= barang.kode)
AS [jumlah terjual]
FROM barang