Вы находитесь на странице: 1из 6

create table Customer

(IDcustomer char(5) not null primary key check(IDcustomer like 'CU[0-9][0-9][0-


9]'),
nama varchar(225) not null,
Dob date not null,
gender char (6) check (gender in ('Female','Male')))

create table Staff


(IDstaff char(5) not null primary key, check(IDstaff like 'SA[0-9][0-9][0-9]'),
nama varchar(225) not null,
Dob date not null,
gender char (6) check (gender in ('Female','Male')),
salary int not null check (salary between 1000000 and 2000000))

CREATE table Jaket(


IDJaket varchar(5) not null primary key check(IDJaket like 'JA[1-9],[1-9],[1-9]'),
nama varchar(225) not null,
price varchar(10) not null check (price >= 25000),
stock varchar(10) not null,)

CREATE table Material(


IDMaterial varchar(5) not null primary key check(IDMaterial like 'MA[1-9],[1-9],[1-
9]'),
nama varchar(225) not null,
price varchar(10) not null,
stock varchar(10) not null,)

CREATE table Vendor(


IDVendor varchar(5) not null primary key check(IDVendor like 'VE[1-9],[1-9],[1-
9]'),
nama varchar(225) not null,
address varchar(225) not null,
email varchar(225) not null,)

create table purchase


(IDTransaction varchar (5) not null primary key check (IDTransaction like 'PR[1-9],
[1-9],[1-9]'),
Idstaff char (5) not null foreign key references Staff(IDstaff),
vendor varchar(5) not null foreign key references Vendor(IDVendor),
material varchar (5) not null foreign key references Material(IDMaterial),
transactionDate date not null,
quantity varchar (3) not null,

create table sales


(IDSales varchar (5) not null primary key check (IDSales like 'SA[1-9],[1-9],[1-
9]'),
staff char (5) not null foreign key references Staff (IDstaff),
customer char (5) not null foreign key references Customer (IDcustomer),
transactionDate varchar (225) not null,
jaket varchar (5) not null foreign key references Jaket (IDJaket),
quantity varchar (3) not null ,
)
insert into Customer (nama,Dob,gender) values
('paijo ','1990-10-02','male'),
('painem','1999-03-19','female'),
('bingbing ','1990-03-19','female'),
('nana','1998-12-01','female'),
('bangbang','1997-02-19','male'),
('adi','1996-01-18','male'),
('feby','1995-05-29','female'),
('maurits','1994-06-30','male'),
('olin','1993-09-18','female'),
('hasmo','2000-02-08','male'),
('hanju','1980-12-09','female'),
('jameson','1985-12-01','male'),
('marissa','1970-02-28','female'),
('lusiana','1980-03-29','female'),
('dewan','1970-03-20','male'),
('ratna','1965-04-20','female'),
('abi','1999-02-18,'male'),
('ryan','1992-10-18','male'),
('dhani','1997-11-11','female'),
('david','1998-09-18','male'),
('wendrik','1995-10-07','male'),
('brodie','2000-09-09','male'),
('grabriela','1992-03-08','female'),
('gaby','1996-04-07','female'),
('virginia','1990-06-15','female');

insert into Staff (nama,Dob,gender,salary) values


('nunung','2000-12-03','female','1000000'),
('painung','1990-09-18','female','2000000'),
('lulung','1990-12-01','female','1000000'),
('rio','2000-03-12','male','2000000'),
('abraham','2000-09-15','male','2000000'),
('lilpump','2001-08-08','male','1500000'),
('tyga','2000-09-12','male','3000000'),
('trafis','1999-06-15','male','2000000'),
('drake','1998-12-06','male','1000000'),
('kardi','2000-11-29','male','2000000'),
('liluzi','1998-12-28','female','2000000'),
('migos','1997-12-12','male','3500000'),
('minaj','1996-02-12','female','3000000'),
('champagnepapi','1997-03-20','male','2500000'),
('sam','2001-06-29','male','6000000'),
('clarie','2003-05-22','female','2100000'),
('vanessa','2000-04-23','female','2350000'),
('linda','1998-08-29','female','4000000'),
('floyd','1997-11-20','male','5500000'),
('pacquiao','1995-09-04','male','3000000'),
('mcgregor','1999-05-30','male','4500000'),
('rousey','1993-01-03','female','3000000'),
('ruiz','1992-07-14','male','2000000'),
('russel','1991-10-20','male','5000000'),
('james','1998-02-01','male','30000000');
insert into Jaket (nama,price,stock) values
('bomber', '10000','1000'),
('hoode','200000','2500'),
('snow','300000','3000'),
('biker ','200000','4000'),
('race','200000','1000'),
('bape','500000','110'),
('supreme','450000','100'),
('gucci','550000','200'),
('offwhite','600000','400'),
('nike','400000','1000'),
('adidas','500000','950'),
('denim','300000','450'),
('fendi','600000','540'),
('champion','450000','300'),
('versace','500000','210');

insert into Material (nama,price,stock) values


('katun','30000','1000'),
('jeans','40000','2000'),
('kulit ','50000','2000'),
('sintetik','5000','1000'),
('parasut','30000','1000');
('terry','50000','3000'),
('fleece','35000','3500'),
('kanvas','20000','1000'),
('taslan','25000','3200'),
('mikro','30000','2345'),
('corduroy','60000','4500'),
('jeans','20000','3000'),
('teteron','40000','2000'),
('tessa','50000','2300'),
('drill','40000','1200');
insert into Vendor (nama,address,email) values
('jojon','tangerang kota 1','jojon@yahoo.com'),
('agong','jelupang barat 2','agong@gmail.com'),
('cecep','pengasinan 3a','cecep@outlook.com'),
('asep','tirtakencana 44b','asepsep@yahoo.com'),
('tina','bogenvil 45 n','tinatirtaana@gmail.com'),
('kobe','jakarta barat no 3 ','kobe24@gmail.com'),
('bryant','sumatra utara no 23','bryant8@gmail.com'),
('kawhi','kalimantan utara no 45','kawhichamps@gmail.com'),
('leonard','surabaya pasar turi 2','leonard2@gmail.com'),
('vince','semarang pasar lingga','vinceee11@gmail.com'),
('carter','banyuwangi selatan no 201','carterforce@gmail.com'),
('rusell','jember pasar baru 111','rusellbrods@gmail.com'),
('murray','papua barat no 22','murrayjamal@gmail.com'),
('paul',' bekasi timur no 65','paulchris@gmail.com'),
('george','bekasi barat no 12','georgehill@gmail.com'),
('kyrie','bogor baru no 123','kyrie5iluminate@gmail.com'),
('irving','jakarta pusat no 98 ','irvingkyle@gmail.com'),
('stephen','sulawesi utara no 41','stephenking@gmail.com'),
('curry','sumatra barat no 987','currychichken@gmail.com'),
('damian','surakarta no 61','damianforw@gmail.com'),
('lillard','purwokerto kulon 44','lillardamn@gmail.com'),
('donovan','kudus tengah no 73','donovanwthank@gmail.com'),
('mitchell','jepara barat no 09','doncicmitchell@gmail.com'),
('ricky','solo baru no 871 ','rickyzap@gmail.com'),
('rubio','daerah istimewa yogyakarta no 45','rubioganggucci@gmail.com');

insert into purchase (transactionDate,quantity)values


('2018-01-01','900'),
('2019-01-19','800'),
('2019-02-01','700'),
('2019-04-30','1000'),
('2019-05-15','900');
('2019-08-28','600'),
('2019-03-12','500'),
('2019-05-30','400'),
('2019-07-22','1200'),
('2019-12-24','1000'),
('2019-04-30','430'),
('2019-05-31','540'),
('2019-11-04','900'),
('2019-10-09','1200'),
('2019-12-31','300');
insert into sales (transactionDate,quantity) values
('2018-01-01','900'),
('2019-01-19','800'),
('2019-02-01','700'),
('2019-04-30','1000'),
('2019-05-15','900'),
('2019-08-28','600'),
('2019-10-09','1200'),
('2019-03-12','500'),
('2019-12-24','1000'),
('2019-04-30','430'),
('2019-12-31','300'),
('2019-05-30','400'),
('2019-07-22','1200'),
('2019-11-04','900'),
('2019-05-31','540');
juan_bigjToday at 1:31 AM
--New sales transaction
INSERT INTO sales VALUES
('SA016', 'CU003', 'ST003', CURRENT_TIMESTAMP);

INSERT INTO salesVALUES


('SA016', 'JA002', '3'),
('SA016', 'JA008', '2'),
('SA016', 'JA004', '5'),
('SA016', 'JA009', '4');

--New purchase transaction


INSERT INTO Purchase VALUES
('PR020', 'ST010', 'VE004', CURRENT_TIMESTAMP);

INSERT INTO Purchase VALUES


('PR020', 'MA003', '3'),
('PR020', 'MA010', '5'),
('PR020', 'MA001', '4'),
('PR020', 'MA004', '6');

--1
SELECT Name,
CONVERT(varchar, transactionDate , 106) AS transactionDate ,
[Transaction Quantity] = SUM(CAST(quantity AS INT))
FROM sales SH
JOIN Sales
ON IDsales = IDsales
JOIN Customer
ON IDcustomer = IDcustomer
WHERE JacketID LIKE 'JA002' AND
MONTH(transactionDate) = 11
GROUP BY nama, transactionDate;

--2
SELECT nama, CONVERT(varchar,transactionDate , 103) AS transactionDate,
[Maximum Quantity] = MAX(CAST( quantity AS INT))
FROM Vendor
JOIN Purchase PH
ON vendor = IDvendor
JOIN Purchas PD
ON IDpurchase = IDpurchase
WHERE IDmaterial LIKE 'MA001' AND
DAY(transactionDate ) % 2 = 0
GROUP BY nama, transactionDate ;

--4
SELECT StaffName,
LEFT(Gender, 1) AS Gender,
nama,
[Total Sales Transaction] = COUNT(IDsales)
FROM Staff
JOIN SalesHeader SH
ON S.IDsales = SH.IDsales
JOIN Customer
ON SH.IDcustomer= C.IDcustomer
JOIN Sales SD
ON SH.IDsales= SD.IDsales
WHERE DAY(transactionDate) % 2 = 0
GROUP BY nama, Gender, nama
HAVING SUM(CAST(quantity AS INT)) >= 4;
--5
SELECT UPPER(nama) AS CustomerName,
LEFT(Gender, 1) AS CustomerGender
FROM Customer
WHERE EXISTS (
SELECT IDcustomer
FROM Salesr SH, (
SELECT IDsales,
SUM(CAST(quantity AS INT)) AS SumQty
FROM Sales
GROUP BY IDsales
) AS SQ, (
SELECT IDsales,
AVG(CAST(quantity AS INT)) AS AvgQty
FROM Sales
GROUP BY IDsales
) AS SA
WHERE C.IDcustomer = SH.IDcustomer
AND DAY(SH.SalesDate) LIKE 1
AND SQ.IDsales = SH.IDsales
AND SQ.SumQty > SA.AvgQty
);

--6
SELECT nama,
CONVERT(varchar,transactionDate , 107) AS PurchaseDate,
nama = LOWER(M.nama)
FROM Vendor
JOIN Purchase PH
ON V.IDvendor = PH.IDvendor
JOIN Purchase PD
ON PH.IDpurchase = PD.IDpurchase
JOIN Material
ON PD.IDmaterial = IDmaterial,
( SELECT AVG(CAST(Price AS INT)) AS AvgPrice
FROM Material
) AS X
WHERE M.Price > X.AvgPrice
AND nama LIKE '%Inc.';

--7
SELECT nama,
[Transaction Date] = DATENAME(WEEKDAY, transactionDate ),
Quantity = CAST(X.Quantity AS varchar) + ' piece(s)',
X.[Total Price]
FROM Customer
JOIN Sales
ON C.IDcustomer = SH.IDcustomer,
( SELECT IDsales,
SUM(CAST(quantity AS INT)) AS Quantity,
SUM(CAST(quantity AS INT) * CAST(Price AS INT)) AS [Total Price]
FROM Sales SD
JOIN Jacket j
ON SD.IDjacket = J.IDjacket
GROUP BY IDsales
) AS X,
( SELECT COUNT(SH.IDsales) AS CountTran
FROM Sales SH
) AS Y,
( SELECT SUM(CAST(quantity AS INT)) AS SumQty
FROM Sales
) AS Z
WHERE X.IDsales = SH.IDsales
AND X.Quantity > (Z.SumQty/Y.CountTran)
AND X.[Total Price] > 10000000
ORDER BY Nama DESC;

--8
SELECT nama,
CONVERT(varchar,transactionDate , 106) AS PurchaseDate,
Nama,
[Material Number] = RIGHT(IDmaterial, 3)
FROM Vendor
JOIN Purchase PH
ON V.IDvendor = PH.IDvendor
JOIN Purchase PD
ON PH.IDpurchase = PD.IDpurchase
JOIN Material
ON PD.IDaterial = M.IDmaterial,
( SELECT AVG(CAST(Stock AS INT)) AS AvgStock
FROM Material
) AS X,
( SELECT IDpurchase,
SUM(CAST(Price AS INT) * CAST(quantity AS INT)) AS TotalPrice
FROM Purchase PD
JOIN Material M
ON PD.IDmaterial = M.IDmaterial
GROUP BY IDpurchase
) AS Y
WHERE Y.IDpurchase = PH.IDpurchase
AND Stock > X.AvgStock
AND Y.TotalPrice > 20000
ORDER BY nama ASC;

Вам также может понравиться