SQL - Group By No Suma Bien

 
Vista:

Group By No Suma Bien

Publicado por Juan De Dios Cobos (1 intervención) el 11/03/2011 18:53:31
Hola, tengo una duda ya que no me cuadra el Qry que posteo mas abajo.

Estoy ejecutando por separado los qrys que tengo en el union sumo los importes y los comparo con la suma de los importes del qry completo que lo único que creo que hago es agrupar los registros y me da resultado distinto, no se como pasa eso, ojala ustedes vean algo raro que me pueda identificar el porque la agrupación me sale distinto.
(Nota: si agrupo por el ID me da un solo registro por cada uno y así si me cuadra pero lo que quiero saber es porque al agruparlo sin ese id que omití aquí no me da la sumatoria correcta )

declare @ProcYear int = 2010
declare @ProcMonth int = 1


select sum(IMPORTE) as IMPORTE,
@ProcYear as PROCYEAR
,@ProcMonth as PROCMONTH
,SISTEMAORIGEN
,IDRAMO
,1303 as IDCONCEPTOCONTABLE
,IDUEN
,IDMONEDA
,POLIZA
,IDAGENTE
,IDOFICINA
,IDSUCURSAL
,IDCLIENTE
,IDSOLICITUD
,RAMO
,SUBRAMO
,RAMOINCISO
,SUBRAMOINCISO
,NUMEROENDOSO
,FECHAREGISTRO
,FECHAEVENTO
,FECHAINICIO
,FECHAFIN
,FECHACONTABILIDAD
,1 as TIPOCAMBIO
,0 as DUMMYFLAG
,ORIGENCLIENTE
,MODULO
,MOVIMIENTO
,TASAIVA
From (
select
@ProcYear as PROCYEAR
,@ProcMonth as PROCMONTH
,SISTEMAORIGEN
,IDRAMO
,1303 as IDCONCEPTOCONTABLE
,IDUEN
,IDMONEDA
,POLIZA
,IDAGENTE
,IDOFICINA
,IDSUCURSAL
,IDCLIENTE
,IDSOLICITUD
,RAMO
,SUBRAMO
,RAMOINCISO
,SUBRAMOINCISO
,NUMEROENDOSO
,FECHAREGISTRO
,FECHAEVENTO
,FECHAINICIO
,FECHAFIN
,FECHACONTABILIDAD
,IMPORTE
,1 as TIPOCAMBIO
,0 as DUMMYFLAG
,ORIGENCLIENTE
,MODULO
,MOVIMIENTO
,TASAIVA
from dbo.t0046 nolock
where PROCYEAR = 2010
and PROCMONTH = 1
and IDUEN = '1234'
and POLIZA > -1
and IDCLIENTE > 0
and IDAGENTE is not null
and IMPORTE is not null
union
select
@ProcYear as PROCYEAR
,@ProcMonth as PROCMONTH
,SISTEMAORIGEN
,IDRAMO
,1303 as IDCONCEPTOCONTABLE
,IDUEN
,IDMONEDA
,POLIZA
,IDAGENTE
,IDOFICINA
,IDSUCURSAL
,IDCLIENTE
,IDSOLICITUD
,RAMO
,SUBRAMO
,RAMOINCISO
,SUBRAMOINCISO
,NUMEROENDOSO
,FECHAREGISTRO
,FECHAEVENTO
,FECHAINICIO
,FECHAFIN
,FECHACONTABILIDAD
,IMPORTE * -1 AS IMPORTE
,1 as TIPOCAMBIO
,0 as DUMMYFLAG
,ORIGENCLIENTE
,MODULO
,MOVIMIENTO
,TASAIVA
from dbo.t0046 nolock
where PROCYEAR = 2009
and PROCMONTH = 12
and IDUEN = '1234'
and POLIZA > -1
and IDCLIENTE > 0
and IDAGENTE is not null
and IMPORTE is not null
)t
group by
SISTEMAORIGEN
,IDRAMO
,IDUEN
,IDMONEDA
,POLIZA
,IDAGENTE
,IDOFICINA
,IDSUCURSAL
,IDCLIENTE
,IDSOLICITUD
,RAMO
,SUBRAMO
,RAMOINCISO
,SUBRAMOINCISO
,NUMEROENDOSO
,FECHAREGISTRO
,FECHAEVENTO
,FECHAINICIO
,FECHAFIN
,FECHACONTABILIDAD
,ORIGENCLIENTE
,MODULO
,MOVIMIENTO
,TASAIVA
having sum(IMPORTE) <> 0
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder