Ver Mensaje Individual
  #1 (permalink)  
Antiguo 15/05/2010, 20:37
romulo111
 
Fecha de Ingreso: agosto-2009
Mensajes: 44
Antigüedad: 14 años, 8 meses
Puntos: 1
Problema con left join y where

que tal companieros fijense que casi no e trabajo con SQLSERVER soy mas de MySQL y me tope con este problema....

tengo este query con left joins, el cual saca la suma de unas cantidades y uso los left joins con coalesce para que aunque no encuentre un registro de un elemento del catalogo lo muestre en pantalla con un 0. este es el query

SELECT a.id, a.nombre_contenido,
COALESCE(SUM(c.cantidadD),'0') as cantidadE,
COALESCE(SUM(c.gradosD),'0') as gradosE,
COALESCE(SUM(c.cantidadO),'0') as cantidadS,
COALESCE(SUM(c.gradosO),'0') as gradosS
FROM tbl_almacen a
LEFT JOIN tbl_movimiento b ON b.id_origen = a.id
LEFT JOIN tbl_vale c ON c.id_movimiento = b.id
GROUP BY a.id,a.nombre_contenido

y este es el resultado

1 PROVEEDORES DE UVA 2428.00 14.277 2550.00 25.700
2 OTROS JUGOS (DOMECQ ) 1250.00 92.160 1200.00 51.200
3 OTROS JUGOS (TERCEROS) 0.00 0.000 0.00 0.000
4 OTROS VINOS (DOMECQ) 0.00 0.000 0.00 0.000
5 OTROS VINOS (TERCEROS) 0.00 0.000 0.00 0.000

PERO CUANDO LE AGREGO UN WHERE Y ME TRUNCA LOS ELEMENTOS QUE TIENEN 0, LO CUAL PUES NO QUIERO QUE PASE, POR EJEMPLO CON ESTE QUERY

SELECT a.id, a.nombre_contenido,
COALESCE(SUM(c.cantidadD),'0') as cantidadE,
COALESCE(SUM(c.gradosD),'0') as gradosE,
COALESCE(SUM(c.cantidadO),'0') as cantidadS,
COALESCE(SUM(c.gradosO),'0') as gradosS
FROM tbl_almacen a
LEFT JOIN tbl_movimiento b ON b.id_origen = a.id
LEFT JOIN tbl_vale c ON c.id_movimiento = b.id
WHERE c.id_vendimia = 1
GROUP BY a.id,a.nombre_contenido

el resultado es este


1 PROVEEDORES DE UVA 2428.00 14.277 2550.00 25.700
2 OTROS JUGOS (DOMECQ) 1250.00 92.160 1200.00 51.200


les agradeceria mucho su ayuda, saludos