Cita: pero como funcionaria para hacer que solo concatene los que cumplen cierta condicion de igual manera que el sum
Si no vas a usar otros registros que los que vas a concatenar, lo que te conviene es hacer:
Código MySQL:
Ver original institucion_codificacion,
institucion_nombre,
SUM(proyecta_importe
) suma
WHERE proyecta_tiempo
='N';
Básicamente hace lo mismo, pero lo hace sobre un conjunto acotado
Si quieres que aparezcan todos, incluso los que no cumplen esa condición, lo que haces es más o menos correcto, pero esto:
Código MySQL:
Ver original institucion_codificacion,
institucion_nombre,
SUM(proyecta_importe
) suma
institucion_codificacion,
institucion_nombre,
proyecta_ruta,
IF(proyecta_tiempo
='N', proyecta_importe
, 0) proyecta_importe
ON i.institucion_id
=p.proyecta_ruta
) t1
Lo hace más claro y sencillo de entender, e incluso más seguro y tal vez rápido.
No hay que tener miedo de escribir consultas algo complejas, porque muchas veces la solución más eficiente llega por allí. Solamente trata de escribirlas estructuradamente, como para que se las pueda leer más fácil (si no se las escribe estructuradamente, cuando empiezas con consultas de 150 líneas encontrar un error es una tarea imposible).
Cita: Ref al NULL en el sum no habra valor NULL cuando cumplan las condiciones siempre existira un valor de todos modos tengo problemas?
NULL no es un valor, sino una condición, un estado, por lo que realizar manipulaciones con él puede dar lugar a problemas. No lo trates como valor.