[DISC] problema raro al sumar

22/11/2005 - 17:06 por Carlos Sacristán | Informe spam
La respuesta a la pregunta de "Aprendiz de Informatico" ya la dieron
correctamente tanto Alejandro como Gustavo, lo que ocurre es que cuando
surgen temas de este tipo siempre me asalta la misma duda:

¿qué opináis sobre el uso de NULL? Gente como Joe Celko no está en
absoluto de acuerdo, pero me gustaría saber vuestras propias experiencias y
opiniones


Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

"Aprendiz de Informatico" <AprendizdeInformatico@discussions.microsoft.com>
escribió en el mensaje
news:696DF00C-F8A7-4F23-9F2F-CB459D21FE1D@microsoft.com...

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

#6 Eleazar Nuñez
23/11/2005 - 17:22 | Informe spam
Hola yo tambien estuve leyendo el tema y en lo personal creo que Null es
valido (es un default). Es trabajo de nosotros los programadores crear un
valor de mas alto nivel si queremos que se sustituya el NULL o validar que
ningun dato contenga null
Saludos
"Carlos Sacristán" <csacristanARROBAmvpsPUNTOorg> escribió en el mensaje
news:%239ZCM%
Liliana, yo creo que en el tema de estadísticas el uso de NULL es
todavía menos indicado por los problemas que comentas. Ahí pienso que
existen menos dudas en utilizarlos o no, verdad?

No sé, el caso es que yo antes estaba más de acuerdo por usarlos, pero
ciertamente o no veo o no existen las ventajas de aceptar NULL en la base


de
datos...


Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

"Liliana Sorrentino" escribió en el


mensaje
news:#SK#
> Hola Carlos y Alejandro,
> Leí atentamente sus comentarios porque el tema NULL me da y seguirá


dando
> demasiados problemas.
> Tenemos un sistema de Tasas tercerizado, que no fue diseñado


originalmente
> con tablas SQL, aunque ahora sí lo son. Pero herencia de esa mutación,


es
la
> presencia de valores NULL en la mayoría de los datos sin contenido.
> El problema es que la mayoría de los datos con los que yo trabajo son
> importes y porcentajes. Cuando saco estadísticas, que generalmente son


el
> resultado de varios SP, me lleva mucho más tiempo verificar la
consistencia
> de los resultados que el tiempo de desarrollo, podrán imaginarse lo que
> significa un resultado erróneo en un balance anual!
> En los sistemas que hago desde cero, no acepto NULL, prefiero algo más


de
> trabajo a la hora del diseño con valores por defecto o en el código de
> incorporación de información validando, que un dato malo entregado en un
> balance al Intendente.
> Es mi humilde experiencia.
> Saludos,
> Liliana.
>
> "Carlos Sacristán" <csacristanARROBAmvpsPUNTOorg> escribió en el mensaje
> news:%
> > Alejandro, yo estoy contigo, pero ciertamente un "gusanillo" me
> empieza
> > a remover el estómago. Y es que, efectivamente, si un valor lo
desconoces,
> > lo suyo es no ponerlo, es decir, usar NULL. Los casos que pones son
> claros,
> > la lógica aquí es aplastante: si no lo conoces, no lo pongas
> >
> > Sin embargo en la base de datos esta lógica que aceptamos implica
> > situaciones que pueden dar lugar a error. Por ejemplo:
> >
> > - usar COUNT(nombre_campo) puede dar lugar a resultados
diferentes
> > según sea el campo NULL o NOT NULL; con los operadores WITH ROLLUP y
WITH
> > CUBE ocurre lo mismo
> > - las aplicaciones cliente se complican porque tienen que


tener
en
> > cuenta si un campo es nulo o no para tener los resultados correctos
> > - el motor de la base de datos va a ser más eficiente (aunque
> > estemos hablando de pequeñas diferencias, éstas existen) si un campo


no
es
> > nulo que si lo es
> > - también depende de cómo estén establecidas las propiedades
ANSI
> > (ANSI_NULLS), y la consulta devolverá diferentes resultados
> >
> > Todas estos inconvenientes parece que son más que la decisión


lógica
> de
> > no querer poner un valor que se desconoce. Pero ciertamente NULL para
> > nosotros significa algo, no?. ¿Qué cuesta entonces cambiarlo por otro
> valor
> > que sí que tenga "valor" (valga el juego de palabras)?. Volviendo a


tus
> > ejemplos:
> >
> > - "Que ponemos en la columna (ultima_vez_que_se_actualizo
> datetime)
> > cuando insertamos un registro por primera vez?" -> podríamos poner la
> fecha
> > de creación del registro. Ciertamente fue la última vez que se


modificó,
> > verdad? Pasó de no existir a existir, así que esa fecha nos da una
> > información valiosa si lo comparamos con la columna (cuando_se_creo
> > datetime)
> > - "Fecha_ultima_visita_al_doctor datetime, si la persona nunca
ha
> > estado en una consulta anteriormente?" -> éste es mejor ejemplo, pero
> > ciertamente tampoco cuesta nada decidir que una fecha en concreto nos
> > indique que esa persona nunca haya estado en la consulta: una fecha
futura
> > ('99991231')
> >
> > En fin, que parece que mi respuesta va más encaminada a no aceptar
> NULL,
> > pero te aseguro que no es así. Lo que ocurre es que siento que la


razón
> que
> > defendemos para usarlos no tiene la fuerza suficiente para aguantar


los
> > inconvenientes que aparecen
> >
> >
> >
> > Un saludo
> >
> > -
> > "Sólo sé que no sé nada. " (Sócrates)
> >
> > "Alejandro Mesa" escribió en
el
> > mensaje news:
> > > Carlos,
> > >
> > > Por mi parte te dire que a pesar de que al permitir valores NULL en
> > ciertas
> > > columnas trae consigo y incremento en las lineas de codigo


necesarias
> para
> > > ciertas operaciones, prefiero usar NULL cuando en realidad el valor


es
> > > desconocido. Por ejemplo:
> > >
> > > Que ponemos en la columna (ultima_vez_que_se_actualizo datetime)
cuando
> > > insertamos un registro por primera vez?
> > >
> > > Fecha_ultima_visita_al_doctor datetime, si la persona nunca ha


estado
en
> > una
> > > consulta anteriormente?
> > >
> > > Hay casos en los que yo prefiero usar NULL, pero tambien trato de
evitar
> > que
> > > columnas con dominio cerrado puedan contener este valor, por


ejemplo:
> > >
> > > - estado_civil
> > > - sexo
> > > - fecha_de_nacimiento
> > > - etc.
> > >
> > > y de vez en cuando (sobre todo en modelos dimensionales) tambien


hago
> uso
> > de
> > > puntos de referencia como 'N/A' u otro valor por defecto.
> > >
> > > La pregunta es buena, TO NULL OR NOT TO NUL?
> > >
> > > Mi respuesta es "depende".
> > >
> > > Saludos,
> > >
> > >
> > > AMB
> > >
> > >
> > > "Carlos Sacristán" wrote:
> > >
> > > > La respuesta a la pregunta de "Aprendiz de Informatico" ya la
> dieron
> > > > correctamente tanto Alejandro como Gustavo, lo que ocurre es que
> cuando
> > > > surgen temas de este tipo siempre me asalta la misma duda:
> > > >
> > > > ¿qué opináis sobre el uso de NULL? Gente como Joe Celko no


está
en
> > > > absoluto de acuerdo, pero me gustaría saber vuestras propias
> > experiencias y
> > > > opiniones
> > > >
> > > >
> > > > Un saludo
> > > >
> > > > -
> > > > "Sólo sé que no sé nada. " (Sócrates)
> > > >
> > > > "Aprendiz de Informatico"
> >
> > > > escribió en el mensaje
> > > > 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 pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida