QM-7093-Case-Study-3/Schrick-Noah_Case-Study-3.sql
2022-09-21 16:31:07 -05:00

173 lines
4.7 KiB
SQL

/* *** CS3-2.40 *** */
SELECT i.SKU, i.SKU_Description, w.WarehouseID, w.WarehouseCity, w.WarehouseState
FROM INVENTORY i, WAREHOUSE w
WHERE i.WarehouseID = w.WarehouseID
AND
(w.WarehouseCity = 'Atlanta') OR
(w.WarehouseCity = 'Bangor') OR
(w.WarehouseCity = 'Chicago')
;
/* *** CS3-2.41 *** */
SELECT i.SKU, i.SKU_Description, w.WarehouseID, w.WarehouseCity, w.WarehouseState
FROM INVENTORY i, WAREHOUSE w
WHERE i.WarehouseID = w.WarehouseID
AND w.WarehouseCity IN ('Atlanta', 'Bangor', 'Chicago')
;
/* *** CS3-2.42 *** */
SELECT i.SKU, i.SKU_Description, w.WarehouseID, w.WarehouseCity, w.WarehouseState
FROM INVENTORY i, WAREHOUSE w
WHERE i.WarehouseID = w.WarehouseID
AND
NOT (w.WarehouseCity = 'Atlanta') AND
NOT (w.WarehouseCity = 'Bangor') AND
NOT (w.WarehouseCity = 'Chicago')
;
/* *** CS3-2.43 *** */
SELECT i.SKU, i.SKU_Description, w.WarehouseID, w.WarehouseCity, w.WarehouseState
FROM INVENTORY i, WAREHOUSE w
WHERE i.WarehouseID = w.WarehouseID
AND w.WarehouseCity NOT IN ('Atlanta', 'Bangor', 'Chicago')
;
/* *** CS3-2.44 *** */
SELECT (RTRIM(i.SKU_Description) + ' is located in ' + LTRIM(w.WarehouseCity)) AS ItemLocation
FROM INVENTORY i, WAREHOUSE w
;
/* *** CS3-2.45 *** */
SELECT SKU, SKU_Description, WarehouseID
FROM INVENTORY
WHERE WarehouseID IN
(SELECT WarehouseID
FROM WAREHOUSE
WHERE Manager = 'Lucille Smith')
;
/* *** CS3-2.46 *** */
SELECT i.SKU, i.SKU_Description, w.WarehouseID
FROM INVENTORY i, WAREHOUSE w
WHERE i.WarehouseID = w.WarehouseID
AND w.Manager = 'Lucille Smith'
;
/* *** CS3-2.47 *** */
SELECT SKU, SKU_Description, w.WarehouseID
FROM INVENTORY i
JOIN WAREHOUSE w ON i.WarehouseID = w.WarehouseID
WHERE Manager = 'Lucille Smith'
;
/* *** CS3-2.48 *** */
SELECT WarehouseID, AVG(QuantityOnHand) AS AVGQuantityOnHand
FROM INVENTORY
WHERE WarehouseID IN
(SELECT WarehouseID
FROM WAREHOUSE
WHERE Manager = 'Lucille Smith'
)
GROUP BY WarehouseID
;
/* *** CS3-2.49 *** */
SELECT i.WarehouseID, AVG(i.QuantityOnHand) AS AVGQuantityOnHand
FROM INVENTORY i, WAREHOUSE w
WHERE i.WarehouseID = w.WarehouseID
AND w.Manager = 'Lucille Smith'
GROUP BY i.WarehouseID
;
/* *** CS3-2.50 *** */
SELECT i.WarehouseID, AVG(QuantityOnHand) AS AVGQuantityOnHand
FROM INVENTORY i
JOIN WAREHOUSE w ON i.WarehouseID = w.WarehouseID
WHERE Manager = 'Lucille Smith'
GROUP BY i.WarehouseID
;
/* *** CS3-2.51 *** */
SELECT w.WarehouseID, WarehouseCity, WarehouseState, Manager, SKU, SKU_Description, QuantityOnHand
FROM WAREHOUSE w
JOIN INVENTORY i ON w.WarehouseID = i.WarehouseID
WHERE Manager = 'Lucille Smith'
;
/* *** CS3-2.52 *** */
SELECT WarehouseID, SUM(QuantityOnOrder) AS TotalItemsOnOrder, SUM(QuantityOnHand) AS TotalItemsOnHand
FROM INVENTORY
GROUP BY WarehouseID, QuantityOnOrder
;
/* *** CS3-2.53 *** */
-- All desired results are in the same table, however there are aggregate functions involved.
-- SQL does not allow performing an aggregate function on expressions containing a subquery.
-- Likewise, subqueries are not allowed in aggregate functions.
/* *** CS3-2.54 *** */
-- Subqueries only retrieve items from the top table, not any other table.
-- Subqueries return results "up", but do not combine or merge any tables.
-- Joins combine tables, and all columns are accessible since the tables are joined together.
/* *** CS3-2.55 *** */
SELECT *
FROM WAREHOUSE w
LEFT JOIN INVENTORY i ON w.WarehouseID = i.WarehouseID
;
/* *** CS3-2.56 *** */
SELECT SKU, SKU_Description, Department
FROM CATALOG_SKU_2016
UNION
SELECT SKU, SKU_Description, Department
FROM CATALOG_SKU_2017
;
/* *** CS3-2.57 *** */
SELECT SKU, SKU_Description, Department
FROM CATALOG_SKU_2016
WHERE CatalogPage IS NOT NULL
UNION
SELECT SKU, SKU_Description, Department
FROM CATALOG_SKU_2017
WHERE CatalogPage IS NOT NULL
;
/* *** CS3-2.58 *** */
SELECT SKU, SKU_Description, Department
FROM CATALOG_SKU_2016
INTERSECT
SELECT SKU, SKU_Description, Department
FROM CATALOG_SKU_2017
;
/* *** CS3-2.59 *** */
SELECT SKU, SKU_Description, Department
FROM CATALOG_SKU_2016
WHERE CatalogPage IS NOT NULL
INTERSECT
SELECT SKU, SKU_Description, Department
FROM CATALOG_SKU_2017
WHERE CatalogPage IS NOT NULL
;
/* *** CS3-2.60 *** */
SELECT SKU, SKU_Description, Department
FROM CATALOG_SKU_2016
EXCEPT
SELECT SKU, SKU_Description, Department
FROM CATALOG_SKU_2017
;
/* *** CS3-2.61 *** */
SELECT d.Buyer, d.SKU
FROM SKU_DATA d
WHERE d.Buyer IN
(SELECT t.Buyer
FROM SKU_DATA t
WHERE d.Buyer = t.Buyer
AND d.SKU <> t.SKU
)
;
-- Shows that changing the primary key to Buyer is not justifiable: Buyer is non-unique.