Ver Mensaje Individual
  #5 (permalink)  
Antiguo 15/04/2010, 01:19
quimfv
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 8 meses
Puntos: 574
Respuesta: intercalar resultados de un union all

El problema es que la primera consulta te dara 2 registros por vehiculo y ahora quieres un campo que usa datos de los dos registros....

Eso lo puedes solucionar en la programación externa, en el momento de imprimir el listado haces el calculo.

La consulta que te adjunto tambien hace el calculo pero solo podras poner los campos que sean comunes, el vehiculo y no se si el vale....

Código MySQL:
Ver original
  1. SELECT sbc2.vehiculo,
  2.              sbc2.kmEnt,
  3.              sbc2.kmSal,
  4.              sbc2.kmSal-sbc2.kmEnt kmDif
  5. FROM (SELECT sbc.vehiculo,
  6.              sum(sbc.kms_ent) kmEnt,
  7.              sum(sbc.kms_sal) kmSal,
  8.            FROM (SELECT h1.vehiculo,
  9.                         h1.kms  kms_ent,
  10.                         0  kms_sal
  11.                       FROM historico_neumaticos h1
  12.                       WHERE h1.cod_ent=2595
  13.                       UNION all
  14.                       SELECT h2.vehiculo,
  15.                         0  kms_ent,
  16.                         h2.kms  kms_sal
  17.                       FROM historico_neumaticos h2
  18.                       WHERE h2.cod_sal=2595) sbc
  19.             GROUP BY sbc.vehiculo) sbc2;

Claro que si a esta le agregas los campos que faltan con una constante
...
"--" nombrecampo,
"Total" movimiento

y luego haces un union all con la del otro post tendras lo que buscas... pero es hacer muchas peticiones al servidor sobre la misma información.

Quim