Jacobvu84 / sql-basic-advance

SQL
0 stars 0 forks source link

switch ... case #4

Open Jacobvu84 opened 9 months ago

Jacobvu84 commented 9 months ago
SELECT
    order_id, 
    required_date, 
    shipped_date,
    CASE
        WHEN DATEDIFF(required_date, shipped_date) < 0
        THEN 'Late'
        ELSE 'OnTime'
    END shipment
FROM 
    sales.orders
WHERE 
    shipped_date IS NOT NULL
ORDER BY 
    required_date;
Jacobvu84 commented 9 months ago
# Write your MySQL query statement below
SELECT 
    p.product_id, 
    CASE 
        WHEN SUM(u.units) IS NULL THEN 0
        WHEN SUM(u.units) = 0 THEN 0
        ELSE ROUND(SUM(p.price * u.units) / SUM(u.units), 2)
    END AS average_price
FROM prices p 
LEFT JOIN unitsSold u 
ON p.product_id = u.product_id 
    AND u.purchase_date BETWEEN p.start_date AND p.end_date
GROUP BY p.product_id;