Teknik Informatika

Senin, 25 Maret 2013

Jawaban Database SQL - Subquery

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

One Response so far

  1. thanks bgt, sgt membantu sy

Leave a Reply