Ver Mensaje Individual
  #10 (permalink)  
Antiguo 11/04/2013, 20:19
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: 17 años
Puntos: 2658
Respuesta: problema para imprimir consulta en tabla

Cita:
Iniciado por Montes28 Ver Mensaje

sum codigo_observatorio
93 ovsm
71 ovsm
62 ovsp
57 ovsp
63 ovspop
32 ovspop

y necesito imprimirlo asi
ovsm 93 71
ovsp 62 57
ovspop 63 32

Ese tipo de resultado nunca lo obtendrás usando UNION. Sólo se consigue con un JOIN, y de todos modos es poco práctico para lo que necesitas hacer.
Una forma más sencilla sería:
Código MySQL:
Ver original
  1.     V.codigo_observatorio,
  2.     IF(CIE.item_conectividad = 1, SUM(CIE.cantidad), 0)suma1,
  3.     IF(CIE.item_conectividad = 2, SUM(CIE.cantidad), 0)suma2
  4.     inv_est_instaladas IE
  5.     INNER JOIN conectividad_inv_estaciones CIE ON IE.item = CIE.item_inv_est_instaladas
  6.     INNER JOIN volcan V ON IE.codigo_volcan = V.codigo
  7.     CIE.item_conectividad IN(1, 2)
  8. GROUP BY V.codigo_observatorio ASC;
Ahora bien, si lo quieres hacer al mismo estilo que lo planteabas tu, sería:
Código MySQL:
Ver original
  1.     T1.codigo_observatorio, T1.suma Suma1, T2.suma Suma2
  2.     (SELECT
  3.         V.codigo_observatorio,
  4.         SUM(CIE.cantidad) suma
  5.     FROM
  6.         inv_est_instaladas IE
  7.         INNER JOIN conectividad_inv_estaciones CIE ON IE.item = CIE.item_inv_est_instaladas
  8.         INNER JOIN volcan V ON IE.codigo_volcan = V.codigo
  9.     WHERE
  10.         CIE.item_conectividad  = 1
  11.     GROUP BY V.codigo_observatorio) T1
  12.     INNER JOIN
  13.     (SELECT
  14.         V.codigo_observatorio,
  15.         SUM(CIE.cantidad) suma
  16.     FROM
  17.         inv_est_instaladas IE
  18.         INNER JOIN conectividad_inv_estaciones CIE ON IE.item = CIE.item_inv_est_instaladas
  19.         INNER JOIN volcan V ON IE.codigo_volcan = V.codigo
  20.     WHERE
  21.         CIE.item_conectividad  = 2
  22.     GROUP BY V.codigo_observatorio) T2 ON T1.codigo_observatorio = T2.codigo_observatorio
  23. ORDER BY codigo_observatorio;

Como podrás ver, la primera forma es mucho más simple.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)