0% found this document useful (0 votes)
14 views

database dbapotik

multijoin dan subquery

Uploaded by

Nabiel Lw
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
14 views

database dbapotik

multijoin dan subquery

Uploaded by

Nabiel Lw
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 13

Nama : Muhammad Nabiel Putra Brilliant

Npm : 2371020019
Class : 3-A
Tugas MultiJoin dan Subquery

CREATE DATABASE Penjualan_online;


USE Penjualan_online;

CREATE TABLE Customers (


id_customer INT PRIMARY KEY,
nama_customer VARCHAR(100),
alamat TEXT,
email VARCHAR(100)
);

CREATE TABLE Orders (


id_order INT PRIMARY KEY,
id_customer INT,
tanggal_order DATE,
status_order VARCHAR(50),
FOREIGN KEY (id_customer) REFERENCES Customers(id_customer)
);

CREATE TABLE Products (


id_product INT PRIMARY KEY,
nama_product VARCHAR(100),
harga DECIMAL(10,2),
stok INT
);
CREATE TABLE Order_Items (
id_order_item INT PRIMARY KEY,
id_order INT,
id_product INT,
kuantitas INT,
FOREIGN KEY (id_order) REFERENCES Orders(id_order),
FOREIGN KEY (id_product) REFERENCES Products(id_product)
);

CREATE TABLE Payments (


id_payment INT PRIMARY KEY,
id_order INT,
metode_pembayaran VARCHAR(50),
jumlah_bayar DECIMAL(10,2),
tanggal_bayar DATE,
FOREIGN KEY (id_order) REFERENCES Orders(id_order)
);

CREATE TABLE Shippings (


id_shipping INT PRIMARY KEY,
id_order INT,
kurir VARCHAR(50),
ongkos_kirim DECIMAL(10,2),
status_pengiriman VARCHAR(50),
FOREIGN KEY (id_order) REFERENCES Orders(id_order)
);

INSERT INTO Customers (id_customer, nama_customer,email,alamat)


VALUES
(1, 'John Doe', '[email protected]','123 Maple St.'),
(2, 'Jane Smith', '[email protected]','456 Oak Ave.'),
(3, 'Mark Johnson', '[email protected]','789 Pine Dr.'),
(4, 'Emma Watson', '[email protected]','321 Elm Rd.'),
(5, 'Michael Brown', '[email protected]', '654 Cedar Ln.'),
(6, 'Olivia Wilson', '[email protected]','987 Birch Blvd.'),
(7, 'Lucas Martinez', '[email protected]','246 Palm St.'),
(8, 'Ava Davis', '[email protected]','135 Willow Cir.'),
(9, 'Noah Anderson', '[email protected]','369 Fir Way.'),
(10, 'Sophia Clark', '[email protected]','753 Redwood Dr.');

SELECT * FROM customers

INSERT INTO Products (id_product, nama_product, harga, stok)


VALUES
(1, 'Laptop', 1000.00, 50),
(2, 'Smartphone', 600.00, 100),
(3, 'Headphones', 150.00, 200),
(4, 'Monitor', 300.00, 80),
(5, 'Keyboard', 50.00, 150),
(6, 'Mouse', 25.00, 300),
(7, 'External Hard Drive', 120.00, 100),
(8, 'Tablet', 500.00, 75),
(9, 'Smartwatch', 200.00, 90),
(10, 'Printer', 250.00, 60);

SELECT * FROM products

INSERT INTO Orders (id_order, id_customer, tanggal_order, status_order)


VALUES
(1, 1, '2024-09-20', 'Completed'),
(2, 2, '2024-09-21', 'Completed'),
(3, 3, '2024-09-22', 'Pending'),
(4, 4, '2024-09-23', 'Completed'),
(5, 5, '2024-09-23', 'Completed'),
(6, 6, '2024-09-24', 'Completed'),
(7, 7, '2024-09-24', 'Pending'),
(8, 8, '2024-09-25', 'Completed'),
(9, 9, '2024-09-26', 'Completed'),
(10, 10, '2024-09-27', 'Completed');

SELECT * FROM Orders

INSERT INTO Order_Items (id_order_item, id_order, id_product, kuantitas)


VALUES
(1, 1, 3, 2),
(2, 1, 1, 1),
(3, 2, 2, 1),
(4, 2, 5, 1),
(5, 3, 4, 1),
(6, 4, 1, 1),
(7, 4, 8, 1),
(8, 5, 5, 1),
(9, 6, 7, 1),
(10, 6, 9, 3);

SELECT * FROM order_items

INSERT INTO payments (id_payment,


id_order,tanggal_bayar,metode_pembayaran,jumlah_bayar)
VALUES
(1, 1, '2024-09-20', 'Credit Card',1600.00),
(2, 2, '2024-09-21', 'PayPal',650.00),
(3, 3, '2024-09-22', 'Bank Transfer',300.00),
(4, 4, '2024-09-23', 'Credit Card', 1300.00),
(5, 5, '2024-09-23', 'Credit Card', 50.00),
(6, 6, '2024-09-24', 'PayPal', 720.00),
(7, 7, '2024-09-24', 'Bank Transfer', 500.00),
(8, 8, '2024-09-25', 'Credit Card',750.00),
(9, 9, '2024-09-26', 'Credit Card', 225.00),
(10, 10, '2024-09-27', 'PayPal', 250.00);

SELECT * FROM payments

INSERT INTO Shippings (id_shipping, id_order, kurir, ongkos_kirim,status_pengiriman)


VALUES
(1, 1, 'FedEx',15.00,'Shipped'),
(2, 2, 'UPS', 15.00,'Shipped'),
(3, 3, 'DHL',30.00,'Processing'),
(4, 4, 'FedEx',15.00, 'Shipped'),
(5, 5, 'USPS',14.00, 'Shipped'),
(6, 6, 'UPS',10.00, 'Shipped'),
(7, 7, 'FedEx',15.00,'Processing'),
(9, 9, 'UPS',20.00,'Shipped'),
(10, 10,'USPS',20.00,'Shipped');

SELECT * FROM shippings

#Multi join soal 1


SELECT
customers.id_customer,
customers.nama_customer,
orders.id_order,
orders.tanggal_order,
orders.status_order,
products.nama_product,
products.harga,
order_items.kuantitas,
payments.metode_pembayaran,
payments.jumlah_bayar,
shippings.status_pengiriman,
shippings.ongkos_kirim,
shippings.kurir
FROM
Customers
INNER JOIN orders ON customers.id_customer = orders.id_customer
INNER JOIN Order_Items ON orders.id_order = order_items.id_order
INNER JOIN Products ON order_items.id_product = products.id_product

INNER JOIN Payments ON orders.id_order = payments.id_order


INNER JOIN Shippings ON orders.id_order = shippings.id_order;
Hasil nya :

#Multi join soal 2


SELECT
customers.id_customer,
customers.nama_customer,
SUM(order_items.kuantitas * products.harga) AS jumlah_belanja,
payments.metode_pembayaran,
orders.status_order,
shippings.kurir,
shippings.status_pengiriman
FROM
Customers
INNER JOIN Orders ON customers.id_customer = orders.id_customer
INNER JOIN Order_Items ON orders.id_order = order_items.id_order
INNER JOIN Products ON order_items.id_product = products.id_product
INNER JOIN Payments ON orders.id_order = payments.id_order
INNER JOIN Shippings ON orders.id_order = shippings.id_order
GROUP BY customers.id_customer, customers.nama_customer,
payments.metode_pembayaran, orders.status_order,
shippings.kurir, shippings.status_pengiriman;

#Multi join soal 3


SELECT
customers.id_customer,
customers.nama_customer,
products.nama_product,
order_items.kuantitas,
payments.metode_pembayaran,
orders.status_order,
shippings.kurir,
shippings.status_pengiriman
FROM
Customers
INNER JOIN Orders ON customers.id_customer = orders.id_customer
INNER JOIN Order_Items ON orders.id_order = order_items.id_order
INNER JOIN Products ON order_items.id_product = products.id_product
INNER JOIN Payments ON orders.id_order = payments.id_order
INNER JOIN Shippings ON orders.id_order = shippings.id_order;

#Multi join soal 4


SELECT
customers.id_customer,
customers.nama_customer,
products.nama_product,
products.harga,
order_items.kuantitas,
orders.status_order,
orders.tanggal_order,
payments.metode_pembayaran,
shippings.kurir,
shippings.status_pengiriman
FROM
Customers
INNER JOIN Orders ON customers.id_customer = orders.id_customer
INNER JOIN Order_Items ON orders.id_order = order_items.id_order
INNER JOIN Products ON order_items.id_product = products.id_product
INNER JOIN Payments ON orders.id_order = payments.id_order
INNER JOIN Shippings ON orders.id_order = shippings.id_order
WHERE orders.tanggal_order BETWEEN '2024-09-22' AND '2024-09-25'
ORDER BY customers.nama_customer, orders.tanggal_order;

#Multi join soal 5


SELECT
products.id_product,
products.nama_product,
SUM(order_items.kuantitas) AS total_terjual,
SUM(order_items.kuantitas * products.harga) AS total_pendapatan
FROM
Products
INNER JOIN Order_Items ON products.id_product = order_items.id_product
INNER JOIN Orders ON order_items.id_order = orders.id_order
GROUP BY products.id_product
ORDER BY total_terjual DESC;
#subquery soal 1
SELECT products.nama_product
FROM Products
INNER JOIN Order_Items ON products.id_product = order_items.id_product
INNER JOIN Orders ON order_items.id_order = orders.id_order
WHERE orders.id_customer = 1;

#subquery soal 2
SELECT orders.id_order,SUM(order_items.kuantitas) AS total_items
FROM Orders
INNER JOIN Order_Items ON orders.id_order = order_items.id_order
GROUP BY orders.id_order
HAVING SUM(order_items.kuantitas) > (
SELECT AVG(total_items)
FROM (
SELECT id_order, SUM(kuantitas) AS total_items
FROM Order_Items
GROUP BY id_order
) AS subquery
);

#subquery soal 3
SELECT customers.nama_customer
FROM Customers
WHERE customers.id_customer IN (
SELECT orders.id_customer
FROM Orders
WHERE orders.tanggal_order BETWEEN '2024-09-01' AND '2024-09-30'
);

#subquery soal 4
SELECT products.nama_product
FROM Products
WHERE products.id_product NOT IN (
SELECT Order_items.id_product
FROM Order_Items
);
#subquery soal 5
SELECT products.nama_product, products.harga
FROM Products
WHERE products.harga > (
SELECT AVG(harga)
FROM Products
);

#subquery soal 6
SELECT customers.nama_customer
FROM Customers
WHERE customers.id_customer NOT IN (
SELECT orders.id_customer
FROM orders
);
#subquery soal 7
SELECT SUM(order_items.kuantitas) AS total_yang_dibeli
FROM Order_Items
INNER JOIN Orders ON order_items.id_order = orders.id_order
WHERE orders.id_customer= 2;

You might also like