SELECT tb_avoir.client_id, tb_avoir.avoir, tb_avoir_utilise.avoir_utilise, SUM( IFNULL( tb_avoir.avoir, 0 ) - IFNULL( tb_avoir_utilise.avoir_utilise, 0 ) ) AS balance FROM ( SELECT invoices.client_id, invoices.type, SUM( invoice_lines.quantity * invoice_lines.unit_price * ( 1 + invoice_lines.vat /100 ) ) avoir FROM `invoice_lines` LEFT JOIN invoices ON ( invoice_lines.invoice_id = invoices.invoice_id ) WHERE invoices.type =2 GROUP BY `invoices`.`client_id` ) AS tb_avoir LEFT JOIN ( SELECT invoices.client_id, invoices.type, SUM( -1 * invoice_lines.quantity * invoice_lines.unit_price * ( 1 + invoice_lines.vat /100 ) ) avoir_utilise FROM `invoice_lines` LEFT JOIN invoices ON ( invoice_lines.invoice_id = invoices.invoice_id ) WHERE invoices.type !=2 AND invoice_lines.unit_price & lt; 0 GROUP BY `invoices`.`client_id` ) AS tb_avoir_utilise ON tb_avoir_utilise.client_id = tb_avoir.client_id GROUP BY tb_avoir.client_id