Hola, encontramos la respuesta a lo que andabas buscando, deslízate y la obtendrás más abajo.
Solución:
Si la columna tiene un valor de 0, está bien, supongo que tiene un problema con un valor Nulo, en ese caso necesitaría usar IsNull(Column, 0)
para asegurarse de que siempre sea 0 como mínimo.
Las respuestas anteriores usando el ISNULL
son correctas solo para MS Sql Server. los COALESCE
La función también funcionará en SQL Server. Pero también funcionará en sistemas de bases de datos SQL estándar. En el ejemplo dado:
SELECT sum(COALESCE(TotalHoursM,0))
+ COALESCE(TotalHoursT,0)
+ COALESCE(TotalHoursW,0)
+ COALESCE(TotalHoursTH,0)
+ COALESCE(TotalHoursF,0) AS TOTAL FROM LeaveRequest
Este es idéntico al ISNULL
solución con la única diferencia que es el nombre de la función. Ambos funcionan en SQL Server pero, COALESCE
es el estándar ANSI y ISNULL
no es. También, COALESCE
es más flexible.
ISNULL
solo funcionará con dos parámetros. Si el primer parámetro es NULL, se devuelve el valor del segundo parámetro; de lo contrario, se devuelve el valor del primero. COALESCE tomará 2 a ‘n’ (no sé el límite de ‘n’) parámetros y devolverá el valor del primer parámetro que no es NULL
. Cuando hay sólo dos parámetros el efecto es el mismo que ISNULL
.
SELECT sum(isnull(TotalHoursM,0))
+ isnull(TotalHoursT,0)
+ isnull(TotalHoursW,0)
+ isnull(TotalHoursTH,0)
+ isnull(TotalHoursF,0))
AS TOTAL FROM LeaveRequest
Si haces scroll puedes encontrar las explicaciones de otros desarrolladores, tú asimismo tienes la opción de dejar el tuyo si te apetece.