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

Final Project SQL

The documents contain multiple SQL queries that select data from various tables to retrieve product, order, customer and other information. The queries include joins, filters, aggregations, sorting and limiting of results.

Uploaded by

Rikshit
Copyright
© © All Rights Reserved
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
65 views

Final Project SQL

The documents contain multiple SQL queries that select data from various tables to retrieve product, order, customer and other information. The queries include joins, filters, aggregations, sorting and limiting of results.

Uploaded by

Rikshit
Copyright
© © All Rights Reserved
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 3

SELECT p.PRODUCT_CLASS_CODE,p.PRODUCT_ID,p.

PRODUCT_DESC,
CASE p.PRODUCT_CLASS_CODE
WHEN 2050 THEN p.PRODUCT_PRICE+2000
WHEN 2051 THEN p.PRODUCT_PRICE+500
WHEN 2052 THEN p.PRODUCT_PRICE+600
ELSE p.PRODUCT_PRICE
END PRODUCT_PRICE
FROM PRODUCT p
INNER JOIN PRODUCT_CLASS pc
on p.PRODUCT_CLASS_CODE=pc.PRODUCT_CLASS_CODE
ORDER by p.PRODUCT_CLASS_CODE DESC;

------------------------------------------------------

SELECT pc.PRODUCT_CLASS_DESC as 'Product Category',


p.PRODUCT_ID as 'Product ID',
p.PRODUCT_DESC as 'Product Description',
p.PRODUCT_QUANTITY_AVAIL as 'Product Availability',
CASE
WHEN pc.PRODUCT_CLASS_CODE in (2050,2053) THEN
CASE
WHEN p.PRODUCT_QUANTITY_AVAIL=0 THEN 'out of stock'
WHEN p.PRODUCT_QUANTITY_AVAIL<=10 THEN 'low stock'
WHEN (p.PRODUCT_QUANTITY_AVAIL>=11 AND p.PRODUCT_QUANTITY_AVAIL<=30) THEN 'In
stock'
WHEN (PRODUCT_QUANTITY_AVAIL>=31) THEN 'enough stock'
END
WHEN pc.PRODUCT_CLASS_CODE in(2052,2056) THEN
CASE
WHEN p.PRODUCT_QUANTITY_AVAIL=0 THEN 'out of stock'
when p.PRODUCT_QUANTITY_AVAIL<=20 THEN 'low stock'
WHEN (p.PRODUCT_QUANTITY_AVAIL>=21 and p.PRODUCT_QUANTITY_AVAIL<=80)THEN 'In stock'
WHEN (PRODUCT_QUANTITY_AVAIL>=81)THEN 'Enough Stock'
END
ELSE
CASE
WHEN p.PRODUCT_QUANTITY_AVAIL=0 THEN 'out of stock'
WHEN p.PRODUCT_QUANTITY_AVAIL<=15 THEN 'low stock'
WHEN (p.PRODUCT_QUANTITY_AVAIL>=16 AND p.PRODUCT_QUANTITY_AVAIL<=50) THEN 'In
stock'
WHEN (PRODUCT_QUANTITY_AVAIL>=51) THEN 'Enough stock'
END
END as 'inventory status'
from PRODUCT p
INNER JOIN PRODUCT_CLASS pc on p.PRODUCT_CLASS_CODE=pc.PRODUCT_CLASS_CODE
order by p.PRODUCT_CLASS_CODE,p.PRODUCT_QUANTITY_AVAIL;

--------------------------------------------
SELECT count(city) as count_of_cities,
COUNTRY as coutry
FROM ADDRESS
GROUP by COUNTRY
HAVING COUNTRY NOT in ('USA','Malaysia') AND count(city)>1
ORDER by count_of_cities DESC;

---------------------------------------------
****
SELECT oc.CUSTOMER_ID,(oc.CUSTOMER_FNAME||''|| oc.CUSTOMER_LNAME) as
customer_full_name,
a.CITY,a.PINCODE,oh.ORDER_ID,pc.PRODUCT_CLASS_DESC,p.PRODUCT_DESC,
p.PRODUCT_PRICE,oi.PRODUCT_QUANTITY,
(oi.PRODUCT_QUANTITY*p.PRODUCT_PRICE) as sub_total
FROM ONLINE_CUSTOMER oc
INNER JOIN ADDRESS a on oc.ADDRESS_ID=a.ADDRESS_ID
INNER JOIN ORDER_HEADER oh on oh.CUSTOMER_ID=oc.CUSTOMER_ID
INNER JOIN ORDER_ITEMS oi on oi.ORDER_ID=oh.ORDER_ID
INNER JOIN PRODUCT p on p.PRODUCT_ID=oi.PRODUCT_ID
INNER JOIN PRODUCT_CLASS pc on pc.PRODUCT_CLASS_CODE=p.PRODUCT_CLASS_CODE

WHERE oh.ORDER_STATUS='shipped' AND a.PINCODE not like '%0%'


ORDER by customer_full_name,sub_total;

--------------------
SELECT oi.PRODUCT_ID,p.PRODUCT_DESC,sum(oi.PRODUCT_QUANTITY) as total_quantity
FROM ORDER_ITEMS oi
INNER JOIN PRODUCT p on p.PRODUCT_ID=oi.PRODUCT_ID
WHERE oi.ORDER_ID in
(
SELECT DISTINCT
ORDER_ID
FROM
ORDER_ITEMS a
WHERE
PRODUCT_ID=201
)
AND oi.PRODUCT_ID<>201
GROUP by oi.PRODUCT_ID
ORDER by
total_quantity
DESC
LIMIT 1;

-------------------------------------------------------------
SELECT oc.CUSTOMER_ID,(oc.CUSTOMER_FNAME ||''|| oc.CUSTOMER_LNAME) as
customer_full_name,
oc.CUSTOMER_EMAIL,
o.ORDER_ID,p.PRODUCT_DESC,oi.PRODUCT_QUANTITY,p.PRODUCT_PRICE,
(oi.PRODUCT_QUANTITY*p.PRODUCT_PRICE)
FROM
ONLINE_CUSTOMER oc
LEFT JOIN ORDER_HEADER o on oc.CUSTOMER_ID=o.CUSTOMER_ID
LEFT JOIN ORDER_ITEMS oi on o.ORDER_ID=oi.ORDER_ID
LEFT JOIN PRODUCT p on oi.PRODUCT_ID=p.PRODUCT_ID
ORDER by oc.CUSTOMER_ID,oi.PRODUCT_QUANTITY DESC;

--------------------------------------------------------------
***************************************************************************

SELECT C.CARTON_ID ,
(C.LEN*C.WIDTH*C.HEIGHT) as volume
FROM ORDERS.CARTON C
WHERE(C.LEN*C.WIDTH*C.HEIGHT)>=(
SELECT
SUM(P.LEN*P.WIDTH*P.HEIGHT*PRODUCT_QUANTITY) AS VOL
FROM ORDERS.ORDER_HEADER OH
INNER JOIN ORDERS.ORDER_ITEMS OI ON OH.ORDER_ID=OI.ORDER_ID
INNER JOIN ORDERS.PRODUCT P ON OI.PRODUCT_ID=P.PRODUCT_ID

WHERE OH.ORDER_ID=10006
)
ORDER BY (C.LEN*C.WIDTH*C.HEIGHT)ASC
LIMIT 1;

--------------------------------------------------------------
SELECT OC.CUSTOMER_ID AS CUSTOMER_ID,
CONCAT(CUSTOMER_FNAME,'',CUSTOMER_LNAME) AS Customer_FullNmae,
OH.ORDER_ID AS Order_ID,
SUM(OI.PRODUCT_QUANTITY) AS Total_order_quantity
from ONLINE_CUSTOMER OC
INNER JOIN ORDER_HEADER OH ON OH.CUSTOMER_ID=OC.CUSTOMER_ID
INNER JOIN ORDER_ITEMS OI ON OI.ORDER_ID=OH.ORDER_ID
WHERE OH.ORDER_STATUS='Shipped'
GROUP BY OH.ORDER_ID
HAVING Total_order_quantity>10
ORDER BY CUSTOMER_ID;

-----------------------------------------------------------------

SELECT OC.CUSTOMER_ID AS Customer_ID,


CONCAT(CUSTOMER_FNAME,'',CUSTOMER_LNAME)AS Customer_FullName,
OH.ORDER_ID AS ORDER_ID,
SUM(OI.PRODUCT_QUANTITY)AS Total_Order_Quantity
FROM ONLINE_CUSTOMER OC
INNER JOIN ORDER_HEADER OH ON OH.CUSTOMER_ID=OC.CUSTOMER_ID
INNER JOIN ORDER_ITEMS OI ON OI.ORDER_ID=OI.ORDER_ID
WHERE OH.ORDER_STATUS='Shipped' AND OH.ORDER_ID>10030
GROUP BY OH.ORDER_ID
ORDER BY Customer_FullName;

----------------------------------------------

SELECT PC.PRODUCT_CLASS_CODE AS Product_Class_Code,


PC.PRODUCT_CLASS_DESC AS Product_Class_Description,
SUM(OI.PRODUCT_QUANTITY*P.PRODUCT_PRICE) AS Total_Value
FROM ORDER_ITEMS OI
INNER JOIN ORDER_HEADER OH ON OH.ORDER_ID=OI.ORDER_ID
INNER JOIN ONLINE_CUSTOMER OC ON OC.CUSTOMER_ID =OH.CUSTOMER_ID
INNER JOIN PRODUCT P ON P.PRODUCT_ID=OI.PRODUCT_ID
INNER JOIN PRODUCT_CLASS PC ON PC.PRODUCT_CLASS_CODE=P.PRODUCT_CLASS_CODE
INNER JOIN ADDRESS A ON A.ADDRESS_ID=OC.ADDRESS_ID
WHERE OH.ORDER_STATUS='Shipped' AND A.COUNTRY NOT IN ('India','USA')
GROUP BY PC.PRODUCT_CLASS_CODE,PC.PRODUCT_CLASS_DESC
ORDER BY Total_Value DESC
LIMIT 1;

You might also like