@huesos53 tiene razón. Tu query está mal escrita, no porque tenga errores de sintaxis, sino de lógica.
Si usas JOINs implicitos, no debes usar explícitos, ni viceversa. Además, para lo que quieres 
no aplican los implícitos. Por otro lado, estás invocando dos veces cada tabla, lo que no se entiende para qué.
La sintaxis más aproximada sería:   
Código SQL:
Ver original- SELECT  
-     EE.etacodigo, 
-     ACT.actcodigo, 
-     SUM(EA.totalactiva) AS cant 
- FROM 
-     ejecucion_actividad 
-         LEFT JOIN 
-     actividad_tipos ON (EA.codigoacttip = ACT.actcodigo) 
-         LEFT JOIN 
-     ejecucion_etapa ON (EA.codigoacttip = EE.etacodigo) 
- WHERE 
-     opcodigo = '$op' 
- GROUP BY EE.etacodigo, ACT.actcodigo 
- ORDER BY EE.etacodigo ASC 
Por otro lado, una nota (espero que ya lo hayas buscado en Google como te dije): Esos EE, EA y ACT, son 
alias puestos en la query para las tablas.
No puedo asegurarte que el resultado sea realmente el que buscas, porque los LEFT JOIn con más de dos tablas tienen a generar productos cartesianos, ya que al no relacionar la segunda y tercera tabla entre si, se genera una relación en estrella. Y ese tipo de relaciones tiende a producir errores de resultados.