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