Hacía bastante que no me pasaba por el foro y os saludo de nuevo :)
Os comento, porque no se si lo estoy haciendo del todo correcto o de la manera más eficiente, es un poco complejo de explicar:
La query en cuestión es la siguiente:
Código:
Tarda unos 33.1319 segundos :(select proveidors_treballadors.id_prov_treb, nom, coalesce(fac,0) from proveidors_treballadors left join (select id_prov_treb, ROUND((sum(materials+stock)),2) as fac from albarans left join (select id_albara, sum(quantitat*multiplicatiu) as materials from comandes_albarans_families group by id_albara) T1 on (albarans.id_albara=T1.id_albara) left join (select id_albara, sum(quantitat*multiplicatiu) as stock from albarans_families group by id_albara) T2 on (albarans.id_albara=T2.id_albara) group by id_prov_treb) T3 on (proveidors_treballadors.id_prov_treb=T3.id_prov_treb) where tipus_prov_treb = 'proveidor';
El Explain es el siguiente:

El diseño de las tablas indicadas, en amarillo:

Cualquier ayuda es bienvenida. No se porqué hice el diseño en catalán pero bueno....
Gracias y saludos.