Básicamente es lo que está haciendo leonardo_josue:
Código:
SELECT *
FROM
(SELECT
emp.value empresa,
nom.value nombre,
SUM(precio.pvp_factura_det) pvp,
factura.id_fac,
factura.print_fac,
factura.num_fac,
factura.fecha_creacion_fac,
factura.estado_fac
FROM
conta_facturas factura
LEFT JOIN conta_detalle_factura precio
ON precio.id_factura_det = factura.id_fac
LEFT JOIN profile_values emp
ON emp.fid=%s && emp.uid = factura.uid_fac
LEFT JOIN profile_values nom
ON nom.fid=%s && nom.uid = factura.uid_fac
WHERE factura.uid_fac>1
GROUP BY factura.id_fac ".$where.") T1
ORDER BY ".$orderBy
Cuando analizo el jemplo que has puesto me encuentro con algunos detalles a observar:
1) No debes usar palabras reservadas en las denominaciones de campos, tablas, bases, etc., porque traen problemas en la ejecución de las consultas. Puntualmente, no puedes denominar a un campo VALUE porque eso es una palabra reservada del SQL.
2) El signo "%" tiene uso dentro de las cadenas, pero no se debe usar a la ligera en una consulta porque es un operador de modulo de división, y en el contexto del uso que le das puede producir errores de sintaxis.