Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

select (case when sum(aaa.costo)='NULL' then '0' else sum(aaa.costo) end)

Estas en el tema de select (case when sum(aaa.costo)='NULL' then '0' else sum(aaa.costo) end) en el foro de SQL Server en Foros del Web. Tengo un serio problema, con la siguiente sentencia logro obtener un resultado. select (case when sum(aaa.costo)='NULL' then '0' else sum(aaa.costo) end) from asis_asistencia aaa wHERE ...
  #1 (permalink)  
Antiguo 23/10/2006, 10:50
Avatar de jhoncacru  
Fecha de Ingreso: mayo-2004
Ubicación: cochabamba-Bolivia
Mensajes: 107
Antigüedad: 20 años
Puntos: 1
select (case when sum(aaa.costo)='NULL' then '0' else sum(aaa.costo) end)

Tengo un serio problema, con la siguiente sentencia logro obtener un resultado.

select (case when sum(aaa.costo)='NULL' then '0' else sum(aaa.costo) end)
from asis_asistencia aaa
wHERE aaa.codigo_barra='650003731'

siempre y cuando existan registros en la tabla para el codigo_barra='650003731', el problema se da cuando no existen registros para dicho codigo.
y el problema me imprime el siguiente mensaje:

Server: Msg 8114, Level 16, State 5, Line 2
Error converting data type varchar to float.


no se puede realizar sum(aaa.costo)='NULL' porque se está comparando varchar con un float.

hay una manera de solucionar este problema???

muchas gracias
__________________
Gracias de antemano.
  #2 (permalink)  
Antiguo 23/10/2006, 11:08
Avatar de Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 19 años, 4 meses
Puntos: 38
Código:
select sum(isnull(aaa.costo,0))
from asis_asistencia aaa
wHERE aaa.codigo_barra='650003731'
__________________
La sencillez y naturalidad son el supremo y último fin de la cultura...
--
MCTS : SQL Server 2008, .NET Framework 3.5, ASP.NET Applications.
  #3 (permalink)  
Antiguo 23/10/2006, 13:26
Avatar de jhoncacru  
Fecha de Ingreso: mayo-2004
Ubicación: cochabamba-Bolivia
Mensajes: 107
Antigüedad: 20 años
Puntos: 1
Andres95

Te cuento que acabo de probarlo y de la misma manera me sigue saliendo NULL, la idea es que no me salga el NULL quiero que me salga un 0 ,

Muchas gracias por responder y por tu ayuda.
__________________
Gracias de antemano.
  #4 (permalink)  
Antiguo 23/10/2006, 13:28
Avatar de Developer9
(Desactivado)
 
Fecha de Ingreso: abril-2005
Ubicación: Mi Ecuador del alma
Mensajes: 4.196
Antigüedad: 19 años
Puntos: 47
A lo qeu andresillo se refiere es que ya no necesitas poner el when case sino simplemente la sentencia que él puso.
  #5 (permalink)  
Antiguo 23/10/2006, 13:38
Avatar de Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 19 años, 4 meses
Puntos: 38
perdon el isnull va afuera... ya que el sum ignora los nulos, no es necesario dejarlo adentro... va...

Código:
select isnull (sum(aaa.costo),0)
from asis_asistencia aaa
wHERE aaa.codigo_barra='650003731'
__________________
La sencillez y naturalidad son el supremo y último fin de la cultura...
--
MCTS : SQL Server 2008, .NET Framework 3.5, ASP.NET Applications.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:17.