Ver Mensaje Individual
  #2 (permalink)  
Antiguo 16/06/2009, 10:27
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, 1 mes
Puntos: 2658
Respuesta: Consulta de referencias cruzadas

Prueba:
Código sql:
Ver original
  1. SELECT CLIENTE, SUM29, SUM30, SUM60, SUM90
  2. FROM
  3.     (SELECT cliente, SUM(importe) SUM29
  4.     FROM comunes!previ_cl
  5.     WHERE banco=" " AND vencim BETWEEN (emision) AND (emision+29) GROUP BY cliente) AS t1
  6.     LEFT JOIN
  7.     (SELECT cliente, SUM(importe) SUM30
  8.     FROM comunes!previ_cl
  9.     WHERE banco=" " AND vencim BETWEEN (emision+30) AND (emision+60) GROUP BY cliente) T2
  10.     ON T1.CLIENTE = T2.CLIENTE
  11.     LEFT  JOIN
  12.      (SELECT  cliente, SUM(importe) SUM60
  13.     FROM comunes!previ_cl
  14.     WHERE banco=" " AND vencim BETWEEN (emision+61) AND (emision+90) GROUP BY cliente) T3
  15.     ON T1.CLIENTE = T3.CLIENTE
  16.     LEFT JOIN
  17.     (SELECT  cliente, SUM(importe) SUM90
  18.     FROM comunes!previ_cl
  19.     WHERE banco=" " AND vencim > (emision+90) GROUP BY cliente) T4
  20.     ON T1.CLIENTE = T4.CLIENTE;
el problema fundamental puede darse sin la primera de las tablas no devuelve alguno de los clientes de las tres siguientes.
Para que esto funcionase bien, habría que hacer un LEFT JOIN entre la tabla de clientes y la primera de estas consultas... Pero la solución que yo le encuentro está dentro de este esquema.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)