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