Ver Mensaje Individual
  #6 (permalink)  
Antiguo 14/09/2010, 09:59
hicolu
 
Fecha de Ingreso: agosto-2009
Ubicación: Lima
Mensajes: 226
Antigüedad: 14 años, 7 meses
Puntos: 3
Respuesta: Left join, right join

hola amigos, quisiera que me den una mano en un querys, sucede q estoy usando el left join por ejemplo en la tabla 2 si tiene 2 valores le digo que me sume y muestre esa cantidad, si me muestra y bien , pero tambien tengo dos campos en la tabla1 que se suman y ahi viene el detalle, si la tabla 2 tiene 2 valores entonces la la suma de los campos de la tabla 1 se suman 2 veses.
Si el dato de la tabla 2 tiene 3 registros entonces los campos de la tabla 1 se van a sumar 3 veses. le dejo mi query para que lo vean y me indiquen en que estoy fallando.... sql server 2008,
enormemente agradecido...
-----------------------------------------
select gasto.FUENTE_FINANC as fuente, fuente.nombre,
gasto.CATEG_GASTO+'.'+gasto.GRUPO_GASTO+'.'+gasto. MODALIDAD_GASTO+'.'+gasto.ELEMENTO_GASTO+'.'+gasto .ELEMENTO_A+'.'+gasto.ELEMENTO_B as especifica,
sum(PRESUPUESTO + MODIFICACION) as PIM,
sum(calend.MONTO) as EJECUCION,
sum(gasto.PRESUPUESTO+gasto.MODIFICACION - calend.MONTO) as saldo,
0 as minn, 0 as addd, 0 as newSaldo
from desarrollo_prueba.gasto as gasto

left outer join desarrollo_prueba.ESPECIFICA_META_CALENDARIO as calend
on calend.ano_eje=gasto.ano_eje and calend.meta=gasto.sec_func
and calend.FUENTE=gasto.FUENTE_FINANC
and calend.CATEGORIA=gasto.CATEG_GASTO and calend.GRUPO=gasto.GRUPO_GASTO
and calend.MODALIDAD=gasto.MODALIDAD_GASTO and calend.ELEMENTO=gasto.ELEMENTO_GASTO
and calend.ELEMENTO_A=gasto.ELEMENTO_A and calend.ELEMENTO_B=gasto.ELEMENTO_B

join desarrollo_prueba.FUENTE_FINANC as fuente
on gasto.FUENTE_FINANC = fuente.fuente_financ
and gasto.ANO_EJE= fuente.ano_eje

where gasto.ano_eje=2010 and gasto.SEC_FUNC=0006

group by fuente.nombre,gasto.FUENTE_FINANC,gasto.CATEG_GAST O,gasto.GRUPO_GASTO,gasto.MODALIDAD_GASTO
,gasto.ELEMENTO_GASTO,gasto.ELEMENTO_A,gasto.ELEME NTO_B

order by gasto.FUENTE_FINANC