SoloCodigo

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
  1.  
  2. SELECT SUM(IF(val IS NULL,0,val)) FROM tabla
  3.  
  4.  
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
  1. select sum(campo) as suma from mi_tabla where where campo<>0;
  2.  

que vendría siendo lo mismo que:
Código: Text
  1. select sum(campo) as suma from mi_tabla;
  2.  
: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
  1.  
  2. UPDATE tabla SET val=0 WHERE val IS NULL
  3.  
  4.  

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.

gracias nuevamente.  :D