Você está na página 1de 8

Nicolas, Mark Angelo G.

2BSCS - 1

CREATING VIEW EXERCISES

--SQL SCRIPT 1:

CREATE VIEW hiredate_view AS SELECT * FROM


(SELECT YEAR(hiredate)"YEAR", MONTH(hiredate)"MONTH", COUNT(hiredate)"COUNT"
FROM employee
GROUP BY YEAR(hiredate), MONTH(hiredate)
ORDER BY 1,2);

SELECT * FROM hiredate_view;

OUTPUT:
--SQL SCRIPT 2:

CREATE VIEW customerTransaction_View AS SELECT * FROM


(SELECT c.custNo "CUSTOMER NUMBER", c.custName "CUSTOMER NAME",
COUNT(s.transNo)"TOTAL SALES TRANSACTION"
FROM customer c
LEFT JOIN sales s
ON c.custNo = s.custNo
GROUP BY c.custNo, c.custName
ORDER BY 3 DESC) ;

SELECT * FROM customerTransaction_View;

OUTPUT:
--SQL SCRIPT 3:

CREATE VIEW averageSalary_View AS SELECT * FROM


(SELECT j.jobCode "JOB CODE", j.jobDesc "DESCRIPTION", AVG(jh.salary) "AVERAGE
SALARY"
FROM job j
LEFT JOIN jobHistory jh
ON j.jobCode = jh.jobCode
WHERE j.jobcode NOT IN ('MGR', 'VP', 'PRES' )
GROUP BY j.jobCode, j.jobDesc
ORDER BY 2 ASC);

SELECT * FROM averageSalary_View;

OUTPUT:
--SQL SCRIPT 4:

CREATE VIEW prodPriceChanges_View AS SELECT * FROM


(SELECT p.prodCode "PRODUCT CODE",p.description "DESCRIPTION",
COUNT(ph.effDate)"PRICE CHANGES"
FROM product p
LEFT JOIN pricehist ph
ON p.prodCode = ph.prodCode
GROUP BY p.prodCode, p.description
HAVING COUNT(ph.effDate)>1
ORDER BY 3 DESC);

SELECT * FROM prodPriceChanges_View;

OUTPUT:
--SQL SCRIPT 5: What is the current price of the each product. Create a view that displays the
product
--code, product description, unit, and its current price. (10 points)

CREATE VIEW productPriceChanges_View AS


SELECT p.prodCode, p.description, p.unit, MAX(ph.effDate)"EFFDATE"
FROM product p
LEFT JOIN pricehist ph
ON p.prodCode=ph.prodCode
GROUP BY p.prodCode, p.description, p.unit;

CREATE VIEW prodCurrentPrice_view AS


SELECT p.prodCode "PRODUCT CODE", p.description, p.unit, ph.unitPrice
FROM productPriceChanges_View p
LEFT JOIN pricehist ph
ON p.prodCode = ph.prodCode
WHERE p.effdate = ph.effdate;

SELECT * FROM prodCurrentPrice_view;

OUTPUT:
--SQL SCRIPT 6: Determine the current number of employees per each department. Your view
should
--contain the department code, department name, and the number of employees a department
has. Do
--not include separated (with SEPDATE values) employees. (10 points)

CREATE VIEW emp_view AS


SELECT jh.empNo , jh. deptCode , MAX(jh.effdate) "EFFDATE" , e.sepDate
FROM jobhistory jh
LEFT JOIN employee e
ON jh.empNo = e.empNo
GROUP BY jh.empNo, e.sepDate, jh. deptCode;

CREATE VIEW deptEmpCount_view AS


SELECT d.deptCode, d.deptName, COUNT(e.empNo) "NUMBER OF EMPLOYEES"
FROM department d
LEFT JOIN emp_view e
ON d.deptCode = e.deptCode
WHERE e.sepDate IS NULL
GROUP BY d.deptCode, d.deptName;

SELECT * FROM deptEmpCount_view;


OUTPUT:
SQL SCRIPT 7:​ Who among the employees received most number of promotions? The view
must contain the employee number, employee name (combined last name and first name). Sort
the list with the most number of promotions. Do not include separated employees. (10 points)

CREATE VIEW empPromotion_view AS SELECT * FROM


(SELECT e.empNo "EMPLOYEE NUMBER", e.lastName || ', ' || e.firstName "EMPLOYEE
NAME" ,
COUNT(jh.effDate) "NUMBER OF PROMOTION"
FROM employee e
LEFT JOIN jobhistory jh
ON e.empNo=jh.empNo
WHERE e.sepDate IS NULL
GROUP BY e.empNo, e.lastName, e.firstName
ORDER BY 3 DESC);

SELECT * FROM empPromotion_view;

OUTPUT:
--SQL SCRIPT 8: What is the most bought product of the company? Your view must list the
highest to
--lowest including the product code, product description, and unit. (10 points)

CREATE VIEW totalPurchase_View AS


SELECT prodCode, quantity FROM salesdetail;

CREATE VIEW totalProdPurchases_View AS SELECT * FROM


(SELECT tp.prodcode, p.description, p.unit, SUM(tp.quantity)"QUANTITY"
FROM totalPurchase_View tp
LEFT JOIN product p
ON tp.prodCode = p.prodCode
GROUP BY tp.prodcode, p.description, p.unit
ORDER BY 4 DESC);

SELECT * FROM totalProdPurchases_View;

OUTPUT:

Você também pode gostar