Ver Mensaje Individual
  #3 (permalink)  
Antiguo 05/10/2012, 15:33
GeriReshef
 
Fecha de Ingreso: julio-2012
Ubicación: Israel
Mensajes: 360
Antigüedad: 12 años, 5 meses
Puntos: 40
Respuesta: Consulta con LEFT JOIN, SUM y GROUP BY se me triplican datos

De lo que yo entiendo concluyo que la consulta debe ser asi:
Código SQL:
Ver original
  1. SELECT  fa.id,
  2.         SUM(nac.importe),
  3.         SUM(prov.importe),
  4.         fa.importe - SUM(nac.importe_primario) - SUM(prov.importe_primario)
  5. FROM    tabla1_facturas fa
  6. LEFT JOIN (SELECT   idfactura,
  7.                 SUM(importe) importe,
  8.                 SUM(importe_primario) importe_primario
  9.         FROM    tabla2_impuestos_nacionales
  10.         GROUP BY idfactura) nac
  11.             ON fa.id = nac.idfactura
  12. LEFT JOIN (SELECT idfactura,
  13.                 SUM(importe) importe,
  14.                 SUM(importe_primario) importe_primario
  15.         FROM    tabla3_impuestos_provinciales
  16.         GROUP BY idfactura) prov
  17.             ON fa.id = prov.idfactura
  18. GROUP BY fa.id
  19. ORDER BY fa.id DESC
Como "regla del pulgar"- las columnas que aparecen en el Group By de tabla1_facturas deben aparecer tambien (en este caso) en los operdores On (del Left Join), para que cada combinacion de las columnas coincida correctamente.

Que es la clave primaria de tabla1_facturas?
__________________
El Castellano no es mi lengua materna: discúlpenme por los errores gramaticales.
Mi blog