Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Me esta sumando mal un Group By

Estas en el tema de Me esta sumando mal un Group By en el foro de SQL Server en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 11/03/2011, 11:41
 
Fecha de Ingreso: diciembre-2005
Mensajes: 30
Antigüedad: 18 años, 11 meses
Puntos: 0
Pregunta Me esta sumando mal un Group By

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
  #2 (permalink)  
Antiguo 11/03/2011, 13:06
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 17 años, 4 meses
Puntos: 180
Respuesta: Me esta sumando mal un Group By

Una pregunta, ¿que version de SQL Server manejas?
__________________
MCTS Isaias Islas
  #3 (permalink)  
Antiguo 11/03/2011, 13:28
 
Fecha de Ingreso: diciembre-2005
Mensajes: 30
Antigüedad: 18 años, 11 meses
Puntos: 0
Respuesta: Me esta sumando mal un Group By

SQL Server 2008
  #4 (permalink)  
Antiguo 11/03/2011, 14:22
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 17 años, 4 meses
Puntos: 180
Respuesta: Me esta sumando mal un Group By

Ya lo has intentado con CTE's en lugar de Sub-Select?
__________________
MCTS Isaias Islas

Etiquetas: group, sumando
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:36.