Ver Mensaje Individual
  #7 (permalink)  
Antiguo 27/08/2010, 02:57
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Concat + group by + mysql

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
  1.    institucion_codificacion,
  2.    institucion_nombre,    
  3.    SUM(proyecta_importe) suma
  4. WHERE proyecta_tiempo='N';
  5. GROUP BY proyecta_ruta;

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
  1.    institucion_codificacion,
  2.    institucion_nombre,    
  3.    SUM(proyecta_importe) suma
  4.    (SELECT
  5.       institucion_codificacion,
  6.       institucion_nombre,
  7.       proyecta_ruta,    
  8.       IF(proyecta_tiempo='N', proyecta_importe, 0) proyecta_importe
  9.    FROM proyecciones p LEFT JOIN institucion i
  10.       ON i.institucion_id=p.proyecta_ruta) t1
  11. GROUP BY proyecta_ruta;
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.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)