select
    p.product_id,
    sum(quantity * (unit_price - purchase_price)) as total_profit,
    round(100 * (sum(unit_price) - sum(purchase_price)) / sum(purchase_price), 2) as profit_margin
from 
    purchase_prices as p
    left join sales_orders as s on p.product_id=s.product_id
group by p.product_id
order by p.product_id