FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
suma de fila con campos a null en una consulta sql
Me gustaría saber cómo puedo sumar campos por fila en una consulta sql, cuando alguno de esos campos tiene valor null. porque es sabido que si alguno de los campos es null, la suma entera vale null. ¿hay alguna forma de indicar que si el campo a sumar vale null, me lo inicialice a 0? sé que hay una función parecida en postgrees creo, "isnull(campo,0). pero yo estoy usando access con delphi. he visto en algún manual funciones parecidas NZ, NVL, pero ningunade ellas me funciona. gracias
|
#2
|
||||
|
||||
Haciendo una prueba con paradox veo que los campos null se suman como cero. En tu caso ¿no te serviría poner un condicional?
select sum(campo) from tabla where campo is not null // Saludos |
#3
|
|||
|
|||
perlo lo que yo quiero es suma por filas
yo uso access, pero loque has puesto ahí es una suma en columnas, que sí suma los null como 0, pero si uno suma 3 campos de los cuales uno está a null, etonces la suma es null. por ejemplo
campo a campo b campo c 3 2 8 4 5 null select campo a + campo b + campo c as total from.... solución: total 13 null y yo lo que quiero es que se obtenga total 13 9 |
#4
|
||||
|
||||
En access puedes utilizar la función NZ que es un sinónimo del NVL de Oracle o el IsNull de SqlServer:
Código:
SELECT NZ(CAMPO1, 0) + NZ(CAMPO2, 0) + NZ(CAMPO3, 0) AS TOTAL FROM...
__________________
delphi.com.ar Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla. |
#5
|
|||
|
|||
me dice función NZ no definida
ya lo comprobé pero me dice que sale un error cuano ejecuta la consulta, diciendo que la función NZ no está definida.
|
#6
|
||||
|
||||
Mmmm... ¿Qué versión de Access utilizas?... Puedes solucionarlo con un IIF
__________________
delphi.com.ar Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla. |
|
|
|