problema raro al sumar

22/11/2005 - 14:38 por Aprendiz de Informatico | Informe spam
hola, quiza es un poco tonto este problema pero bueno...

la cuestion es que hago consultas y guardo ciertos valores en variables,
dentro de un stored procedure. Luego tengo que sumar todas esas variables
haciendo

set @Total = @Suma1 + @Suma2 + @Suma3

en el ejemplo este, la unica variable que tiene un valor es Suma3, las otras
2 estan "vacias" porque no habia nada que sumar en esas consultas. El
problema es que cuando hago esa suma para Total que puse mas arriba, me da
NADA, ni siquiera cero, como si fuera null o algo por el estilo, pero tendria
que dar el valor de Suma3 que es la unica que tiene algo. Aclaro que el tipo
de datos que estoy usando es numeric(10,2)

que hago para que me sume todo ?

aparentemente el problema es solo cuando hay variables que no tienen valor,
porque cuando las 3 variables Suma tienen algo, no hay problema.

:-)

Preguntas similare

Leer las respuestas

#1 Alejandro Mesa
22/11/2005 - 15:12 | Informe spam
Estas en lo correcto, cualquier operacion con NULL resulta en NULL y por eso
debes usar las funciones ISNULL o COALESCE para sustituir valores NULL en una
expresion dada.

set @Total = isnull(@Suma1, 0) + isnull(@Suma2, 0) + isnull(@Suma3, 0)


AMB

"Aprendiz de Informatico" wrote:

hola, quiza es un poco tonto este problema pero bueno...

la cuestion es que hago consultas y guardo ciertos valores en variables,
dentro de un stored procedure. Luego tengo que sumar todas esas variables
haciendo

set @Total = @Suma1 + @Suma2 + @Suma3

en el ejemplo este, la unica variable que tiene un valor es Suma3, las otras
2 estan "vacias" porque no habia nada que sumar en esas consultas. El
problema es que cuando hago esa suma para Total que puse mas arriba, me da
NADA, ni siquiera cero, como si fuera null o algo por el estilo, pero tendria
que dar el valor de Suma3 que es la unica que tiene algo. Aclaro que el tipo
de datos que estoy usando es numeric(10,2)

que hago para que me sume todo ?

aparentemente el problema es solo cuando hay variables que no tienen valor,
porque cuando las 3 variables Suma tienen algo, no hay problema.

:-)
Respuesta Responder a este mensaje
#2 Gustavo Larriera [MVP]
22/11/2005 - 15:18 | Informe spam
El valor NULL es especial (es 'desconocido' en vez de nulo :-)).

Usa la función ISNULL:

declare @a integer
declare @b integer

set @a = 23

select @a + @b
select @a + ISNULL(@b, 0)

Gustavo Larriera
Uruguay LatAm
Blog: http://sqljunkies.com/weblog/gux/
MVP profile: http://aspnet2.com/mvp.ashx?GustavoLarriera
Este mensaje se proporciona "COMO ESTA" sin garantias y no otorga ningun
derecho / This posting is provided "AS IS" with no warranties, and confers
no rights.
"Aprendiz de Informatico"
wrote in message news:
hola, quiza es un poco tonto este problema pero bueno...

la cuestion es que hago consultas y guardo ciertos valores en variables,
dentro de un stored procedure. Luego tengo que sumar todas esas variables
haciendo

set @Total = @Suma1 + @Suma2 + @Suma3

en el ejemplo este, la unica variable que tiene un valor es Suma3, las
otras
2 estan "vacias" porque no habia nada que sumar en esas consultas. El
problema es que cuando hago esa suma para Total que puse mas arriba, me da
NADA, ni siquiera cero, como si fuera null o algo por el estilo, pero
tendria
que dar el valor de Suma3 que es la unica que tiene algo. Aclaro que el
tipo
de datos que estoy usando es numeric(10,2)

que hago para que me sume todo ?

aparentemente el problema es solo cuando hay variables que no tienen
valor,
porque cuando las 3 variables Suma tienen algo, no hay problema.

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