Buenos días compañeros.
 
Tengo un problemita y espero puedan ayudarme.
 
Tengo una tabla(TABLA A) que esta compuesta por 3 campos (DATE, TERRY, PRODUCT)
y en otra tabla(TABLA B) tengo la informacion de la ganancia generada por cada producto, en su territorio para un periodo o mes especifico; ademas de muchos otros datos que no vienen al caso.
 
La cosa esta en que a veces un territorio no genera ganancia para un producto y por supuesto no se especifica en la TABLA B. Sin embargo yo necesito que, si no existe el registro en la TABLA B, me devuelva un 0 en la consulta. 
 
La consulta que he fabricado para este caso es la siguiente:
 
SELECT DATE, TERRY, PRODUCT, SUM(GANANCIA)
FROM TABLA_A LEFT JOIN TABLA_B C
ON C.PRD_END_DT = DATE AND C.SALES_TERRY_CD = TERRY AND C.P_SAP = PRODUCT
GROUP BY DATE, TERRY, PRODUCT
 
El problema es que este query solo retorna los valores que coincidan de la TABLA A con los de la TABLA B, cuando  segun entiendo; la sentencia LEFT OUTER JOIN retorna todos los valores contenidos en la tabla de la izquierda y solo los que concuerden de la tabla de la derecha.
 
La Tabla A esta estructurada mas o menos de la siguiente manera:
 
DATE------- TERRY -- PRODUCT
01-2011--- 1--------  A
01-2011--- 1--------  B
01-2011--- 1--------  C
 
Y la consulta que fabrique devuelve lo siguiente:
 
DATE------- TERRY -- PRODUCT----Ganancia
01-2011--- 1--------  A--------------10
01-2011--- 1--------  B--------------20
 
 
Espero haberme explicado y de antemano, gracias por su ayuda. 
  
 

