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