No sé si te habré entendido bien todo y lo que quieres es la suma de todas las líneas sean de pedidos con destino cliente o líneas con destino stock. No he probado nada y la consulta es solo es a título orientativo. Tampoco sé si será lo más eficiente hacer el where y el group by dentro de los elementos del UNION ALL o hacerlo solo fuera. Pero primero probamos la consulta para ver si da lo que quieres y luego hacemos pruebas para hacerla más eficiente.
Código MySQL:
Ver original pt.id_prov_treb,
pt.nom,
pt.tipus_prov_treb,
FROM proveidors_treballadors pt
(ca.quantitat * ca.multiplicatiu) tot,
a.id_prov_treb,
a.tipus_prov_treb
INNER JOIN comandes_albarans_families ca
ON a.id_albara
= ca.id_albar
WHERE a.tipus_prov_treb
= 'proveidor' (af.quantitat * af.multiplicatiu),
a.id_prov_treb,
a.tipus_prov_treb
INNER JOIN albarans_families af
ON a.id_albara
= af.id_albara
WHERE a.tipus_prov_treb
= 'proveidor' ON (pt.id_prov_treb
= T1.id_prov_treb
AND pt.tipus_prov_treb
= T1.tipus_prov_treb
) GROUP BY pt.id_prov_treb
, pt.tipus_prov_treb