Resultado de suma raro

29/07/2006 - 17:23 por Julio Cesar | Informe spam
Buen día a todos y de antemano gracias por la ayuda que me puedan brindar.
Tengo la siguiente consulta:
select trade.nrodcto , trade.neto, trade.ivabruto, sum(trade.neto +
trade.ivabruto) as BRUTO
from trade, mvtrade
where trade.nrodcto = mvtrade.nrodcto
and trade.tipodcto = mvtrade.tipodcto
and trade.origen = mvtrade.origen
and trade.origen = 'FAC'
and trade.fecha between '01/07/2006' and '05/07/2006'
and (trade.tipodcto ='FA' or trade.tipodcto ='FR' or trade.tipodcto ='NC' or
trade.tipodcto ='ND')
and trade.nit <> '0'
group by trade.nrodcto, trade.neto, trade.ivabruto
order by trade.tipodcto

y me da el siguiente resultado:

nrodcto neto ivabruto bruto
1100013350 71145 11383 82528
1100013351 0 0 0
1100013352 2 0 2
1100013353 1472775 147278 3240106*
1100013354 89700 14352 104052
1100013355 310000 32956 1028868*
1100013356 348150 41016 1167498*
1100013357 310000 32956 1028868*
1100013358 298619 29862 656962*
1100013359 121519 12152 133671

Pero si me da por revisar la columna de bruto (neto+iva) en algunas
ocasiones no es el valor real de la suma, a veces sucede que esa diferencia
llega a ser de hasta 14 veces. No entiendo lo que esta pasado. Alguien me
puede colaborar. Gracias nuevamente.

Preguntas similare

Leer las respuestas

#1 Jose Antonio
31/07/2006 - 01:22 | Informe spam
Supongo que en algun momento trade.neto o trade.ivabruto seran nulos,
deberias ponerles un valor por defecto de cero.

"Julio Cesar" escribió en el mensaje
news:
Buen día a todos y de antemano gracias por la ayuda que me puedan brindar.
Tengo la siguiente consulta:
select trade.nrodcto , trade.neto, trade.ivabruto, sum(trade.neto +
trade.ivabruto) as BRUTO
from trade, mvtrade
where trade.nrodcto = mvtrade.nrodcto
and trade.tipodcto = mvtrade.tipodcto
and trade.origen = mvtrade.origen
and trade.origen = 'FAC'
and trade.fecha between '01/07/2006' and '05/07/2006'
and (trade.tipodcto ='FA' or trade.tipodcto ='FR' or trade.tipodcto ='NC'
or
trade.tipodcto ='ND')
and trade.nit <> '0'
group by trade.nrodcto, trade.neto, trade.ivabruto
order by trade.tipodcto

y me da el siguiente resultado:

nrodcto neto ivabruto bruto
1100013350 71145 11383 82528
1100013351 0 0 0
1100013352 2 0 2
1100013353 1472775 147278 3240106*
1100013354 89700 14352 104052
1100013355 310000 32956 1028868*
1100013356 348150 41016 1167498*
1100013357 310000 32956 1028868*
1100013358 298619 29862 656962*
1100013359 121519 12152 133671

Pero si me da por revisar la columna de bruto (neto+iva) en algunas
ocasiones no es el valor real de la suma, a veces sucede que esa
diferencia
llega a ser de hasta 14 veces. No entiendo lo que esta pasado. Alguien me
puede colaborar. Gracias nuevamente.
Respuesta Responder a este mensaje
#2 Julio Cesar
31/07/2006 - 16:21 | Informe spam
Jose gracias pero esos valores no estan nulos.
este es un ejemplo

Neto iva bruto
1472775 147278 3240106*
89700 14352 104052
310000 32956 1028868*
esos son resultados obtenido de la base de datos con el sum(neto+iva)
no entiendo que es lo que puede estar pasando
"Jose Antonio" escribió:

Supongo que en algun momento trade.neto o trade.ivabruto seran nulos,
deberias ponerles un valor por defecto de cero.

"Julio Cesar" escribió en el mensaje
news:
> Buen día a todos y de antemano gracias por la ayuda que me puedan brindar.
> Tengo la siguiente consulta:
> select trade.nrodcto , trade.neto, trade.ivabruto, sum(trade.neto +
> trade.ivabruto) as BRUTO
> from trade, mvtrade
> where trade.nrodcto = mvtrade.nrodcto
> and trade.tipodcto = mvtrade.tipodcto
> and trade.origen = mvtrade.origen
> and trade.origen = 'FAC'
> and trade.fecha between '01/07/2006' and '05/07/2006'
> and (trade.tipodcto ='FA' or trade.tipodcto ='FR' or trade.tipodcto ='NC'
> or
> trade.tipodcto ='ND')
> and trade.nit <> '0'
> group by trade.nrodcto, trade.neto, trade.ivabruto
> order by trade.tipodcto
>
> y me da el siguiente resultado:
>
> nrodcto neto ivabruto bruto
> 1100013350 71145 11383 82528
> 1100013351 0 0 0
> 1100013352 2 0 2
> 1100013353 1472775 147278 3240106*
> 1100013354 89700 14352 104052
> 1100013355 310000 32956 1028868*
> 1100013356 348150 41016 1167498*
> 1100013357 310000 32956 1028868*
> 1100013358 298619 29862 656962*
> 1100013359 121519 12152 133671
>
> Pero si me da por revisar la columna de bruto (neto+iva) en algunas
> ocasiones no es el valor real de la suma, a veces sucede que esa
> diferencia
> llega a ser de hasta 14 veces. No entiendo lo que esta pasado. Alguien me
> puede colaborar. Gracias nuevamente.



Respuesta Responder a este mensaje
#3 GenioMaestro
31/07/2006 - 21:44 | Informe spam
Creo que estas intentando hacer dos operaciones que tienen que ser
independientes en una sola. Es decir, no puedes hacer A+B y SUM en la misma
operacion de GROUP BY.

Prueba primero con una consulta que te de A+B sin group by ni suma y luego
realiza la suma agrupando. Algo asi como:

select trade.nrodcto , trade.neto, trade.ivabruto, sum(BRUTO_TMP) as BRUTO
from (
select trade.nrodcto , trade.neto, trade.ivabruto, (trade.neto +
trade.ivabruto) as BRUTO_TMP
from trade, mvtrade
where trade.nrodcto = mvtrade.nrodcto
and trade.tipodcto = mvtrade.tipodcto
and trade.origen = mvtrade.origen
and trade.origen = 'FAC'
and trade.fecha between '01/07/2006' and '05/07/2006'
and (trade.tipodcto ='FA' or trade.tipodcto ='FR' or trade.tipodcto ='NC' or
trade.tipodcto ='ND')
and trade.nit <> '0'
) as XX_TEMPO
group by trade.nrodcto, trade.neto, trade.ivabruto
order by trade.tipodcto

Sencillamente he puesto una subselect que te da una cosa y una select
superior que coje los mismos campos y hace la suma con el group by.

Pruebalo y si no funciona investiga por esta idea.

Un saludo.

"Julio Cesar" escribió en el mensaje
news:
Jose gracias pero esos valores no estan nulos.
este es un ejemplo

Neto iva bruto
1472775 147278 3240106*
89700 14352 104052
310000 32956 1028868*
esos son resultados obtenido de la base de datos con el sum(neto+iva)
no entiendo que es lo que puede estar pasando
"Jose Antonio" escribió:

Supongo que en algun momento trade.neto o trade.ivabruto seran nulos,
deberias ponerles un valor por defecto de cero.

"Julio Cesar" escribió en el
mensaje
news:
> Buen día a todos y de antemano gracias por la ayuda que me puedan
> brindar.
> Tengo la siguiente consulta:
> select trade.nrodcto , trade.neto, trade.ivabruto, sum(trade.neto +
> trade.ivabruto) as BRUTO
> from trade, mvtrade
> where trade.nrodcto = mvtrade.nrodcto
> and trade.tipodcto = mvtrade.tipodcto
> and trade.origen = mvtrade.origen
> and trade.origen = 'FAC'
> and trade.fecha between '01/07/2006' and '05/07/2006'
> and (trade.tipodcto ='FA' or trade.tipodcto ='FR' or trade.tipodcto
> ='NC'
> or
> trade.tipodcto ='ND')
> and trade.nit <> '0'
> group by trade.nrodcto, trade.neto, trade.ivabruto
> order by trade.tipodcto
>
> y me da el siguiente resultado:
>
> nrodcto neto ivabruto bruto
> 1100013350 71145 11383 82528
> 1100013351 0 0 0
> 1100013352 2 0 2
> 1100013353 1472775 147278 3240106*
> 1100013354 89700 14352 104052
> 1100013355 310000 32956 1028868*
> 1100013356 348150 41016 1167498*
> 1100013357 310000 32956 1028868*
> 1100013358 298619 29862 656962*
> 1100013359 121519 12152 133671
>
> Pero si me da por revisar la columna de bruto (neto+iva) en algunas
> ocasiones no es el valor real de la suma, a veces sucede que esa
> diferencia
> llega a ser de hasta 14 veces. No entiendo lo que esta pasado. Alguien
> me
> puede colaborar. Gracias nuevamente.



Respuesta Responder a este mensaje
#4 Julio Cesar
01/08/2006 - 00:01 | Informe spam
si me di cuenta del error, gracias por tu colaboracion "GenioMaestro".

"GenioMaestro" escribió:



Creo que estas intentando hacer dos operaciones que tienen que ser
independientes en una sola. Es decir, no puedes hacer A+B y SUM en la misma
operacion de GROUP BY.

Prueba primero con una consulta que te de A+B sin group by ni suma y luego
realiza la suma agrupando. Algo asi como:

select trade.nrodcto , trade.neto, trade.ivabruto, sum(BRUTO_TMP) as BRUTO
from (
select trade.nrodcto , trade.neto, trade.ivabruto, (trade.neto +
trade.ivabruto) as BRUTO_TMP
from trade, mvtrade
where trade.nrodcto = mvtrade.nrodcto
and trade.tipodcto = mvtrade.tipodcto
and trade.origen = mvtrade.origen
and trade.origen = 'FAC'
and trade.fecha between '01/07/2006' and '05/07/2006'
and (trade.tipodcto ='FA' or trade.tipodcto ='FR' or trade.tipodcto ='NC' or
trade.tipodcto ='ND')
and trade.nit <> '0'
) as XX_TEMPO
group by trade.nrodcto, trade.neto, trade.ivabruto
order by trade.tipodcto

Sencillamente he puesto una subselect que te da una cosa y una select
superior que coje los mismos campos y hace la suma con el group by.

Pruebalo y si no funciona investiga por esta idea.

Un saludo.

"Julio Cesar" escribió en el mensaje
news:
> Jose gracias pero esos valores no estan nulos.
> este es un ejemplo
>
> Neto iva bruto
> 1472775 147278 3240106*
> 89700 14352 104052
> 310000 32956 1028868*
> esos son resultados obtenido de la base de datos con el sum(neto+iva)
> no entiendo que es lo que puede estar pasando
> "Jose Antonio" escribió:
>
>> Supongo que en algun momento trade.neto o trade.ivabruto seran nulos,
>> deberias ponerles un valor por defecto de cero.
>>
>> "Julio Cesar" escribió en el
>> mensaje
>> news:
>> > Buen día a todos y de antemano gracias por la ayuda que me puedan
>> > brindar.
>> > Tengo la siguiente consulta:
>> > select trade.nrodcto , trade.neto, trade.ivabruto, sum(trade.neto +
>> > trade.ivabruto) as BRUTO
>> > from trade, mvtrade
>> > where trade.nrodcto = mvtrade.nrodcto
>> > and trade.tipodcto = mvtrade.tipodcto
>> > and trade.origen = mvtrade.origen
>> > and trade.origen = 'FAC'
>> > and trade.fecha between '01/07/2006' and '05/07/2006'
>> > and (trade.tipodcto ='FA' or trade.tipodcto ='FR' or trade.tipodcto
>> > ='NC'
>> > or
>> > trade.tipodcto ='ND')
>> > and trade.nit <> '0'
>> > group by trade.nrodcto, trade.neto, trade.ivabruto
>> > order by trade.tipodcto
>> >
>> > y me da el siguiente resultado:
>> >
>> > nrodcto neto ivabruto bruto
>> > 1100013350 71145 11383 82528
>> > 1100013351 0 0 0
>> > 1100013352 2 0 2
>> > 1100013353 1472775 147278 3240106*
>> > 1100013354 89700 14352 104052
>> > 1100013355 310000 32956 1028868*
>> > 1100013356 348150 41016 1167498*
>> > 1100013357 310000 32956 1028868*
>> > 1100013358 298619 29862 656962*
>> > 1100013359 121519 12152 133671
>> >
>> > Pero si me da por revisar la columna de bruto (neto+iva) en algunas
>> > ocasiones no es el valor real de la suma, a veces sucede que esa
>> > diferencia
>> > llega a ser de hasta 14 veces. No entiendo lo que esta pasado. Alguien
>> > me
>> > puede colaborar. Gracias nuevamente.
>>
>>
>>



email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida