Ver Mensaje Individual
  #1 (permalink)  
Antiguo 05/04/2012, 10:42
freddysimondelgado
 
Fecha de Ingreso: abril-2012
Ubicación: Caracas
Mensajes: 4
Antigüedad: 12 años, 7 meses
Puntos: 0
Consulta con LEFT OUTER JOIN no devuelve los valores esperados

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.

Última edición por freddysimondelgado; 05/04/2012 a las 10:48