Bases de Datos => MySQL => Mensaje iniciado por: gokufast en Miércoles 29 de Agosto de 2007, 09:19
Título: Valores Null
Publicado por: gokufast en Miércoles 29 de Agosto de 2007, 09:19
hay algun trigger, procedure, function scrip algo que me pueda convertir valores null a 0 u otro valor?
o de lo contrario como poder sumar o restar valores que contengan null
gracias
Título: Re: Valores Null
Publicado por: jpaler en Miércoles 29 de Agosto de 2007, 14:46
¿y q tal si especificas q solo te sume aquellos valores q no son null?
Título: Re: Valores Null
Publicado por: gokufast en Miércoles 29 de Agosto de 2007, 15:19
seria hacer la prueba, pero como puedo hacer eso
Título: Re: Valores Null
Publicado por: Mollense en Miércoles 29 de Agosto de 2007, 18:25
¿De que tipo es el campo que contiene los valores?
Título: Re: Valores Null
Publicado por: gokufast en Miércoles 29 de Agosto de 2007, 18:41
es de tipo decimal (14,2)
Título: Re: Valores Null
Publicado por: Mollense en Miércoles 29 de Agosto de 2007, 18:59
Yo creo que no hay necesidad de realizar algo en especial, directamente realiza las sumas y restas, los valores null son convertidos directamente a 0. No lo probé todavía pero podrías ir viendo que pasa.
:comp:
Título: Re: Valores Null
Publicado por: ArKaNtOs en Miércoles 29 de Agosto de 2007, 19:33
select sum(campo) as suma from mi_tabla where campo > 0;
:P
Título: Re: Valores Null
Publicado por: LeGatoRojo en Miércoles 29 de Agosto de 2007, 19:52
puedes intentar un if
Código: Text
SELECT SUM(IF(val IS NULL,0,val)) FROM tabla
Título: Re: Valores Null
Publicado por: gokufast en Miércoles 29 de Agosto de 2007, 21:26
no lo convierte deirectamente a 0 porque al hacer operaciones con valores null, no me tomaba en cuenta los datos que tenian null
Título: Re: Valores Null
Publicado por: Mollense en Miércoles 29 de Agosto de 2007, 21:47
Cita de: ""ArKaNtOs""
select sum(campo) as suma from mi_tabla where campo > 0;
Si el problema son los nulos (0) debería contemplar también los números negativos
Código: Text
select sum(campo) as suma from mi_tabla where where campo<>0;
que vendría siendo lo mismo que:
Código: Text
select sum(campo) as suma from mi_tabla;
:P
Título: Re: Valores Null
Publicado por: LeGatoRojo en Miércoles 29 de Agosto de 2007, 21:47
pues es imposible hacer operaciones con null, lo unico que puedes hacer es convertirlo de esa manera, es lo mismo que tener cero, ahora que si lo que quieres es pasarlo a cero sin importar nada, tan solo es cuestion de hacer
Código: Text
UPDATE tabla SET val=0 WHERE val IS NULL
antes de hacer las operaciones.
Título: Re: Valores Null
Publicado por: F_Tanori en Miércoles 29 de Agosto de 2007, 22:33
Tambien Puedes usar IFNULL
<!--sql--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>SQL </td></tr><tr><td id='CODE'><!--sql1-->[color=blue;font-weight]select[/color] sum(ifnull(campo,0)) as suma from mi_tabla <!--sql2--></td></tr></table><div class='postcolor'><!--sql3-->
Saludos
Editado:
Correccion a la instruccion SQL
Título: Re: Valores Null
Publicado por: gokufast en Jueves 30 de Agosto de 2007, 07:22
Muchas gracias por la ayuda a todos, con un poco de todos logre obtener el resultado que queria, que era sacar la resta entre la suma de depositos y la suma de retiros, osea el saldo.
aca mi query: SELECT campo1, campo2, SUM(ifnull(retiros,0)), SUM(ifnull(depositos,0)), SUM(ifnull(depositos,0)-ifnull(retiros,0)) FROM tabla GROUP BY campo2
Sobre esta consulta voy a trabajar, Asi que es solo el comienzo, porque tengo que usar fechas, pero para eso abrire un nuevo tema.