Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   suma de fila con campos a null en una consulta sql (https://www.clubdelphi.com/foros/showthread.php?t=7054)

soyhugo 01-02-2004 13:54:45

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

roman 01-02-2004 21:35:28

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

soyhugo 01-02-2004 23:37:01

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

delphi.com.ar 02-02-2004 15:18:30

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...

Saludos!

soyhugo 02-02-2004 16:56:24

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.

delphi.com.ar 02-02-2004 17:15:14

Mmmm... ¿Qué versión de Access utilizas?... Puedes solucionarlo con un IIF

soyhugo 02-02-2004 17:59:20

utilizo access 200. Con la función iff también me dice lo mismo.
 
utilizo access 200. Con la función iff también me dice lo mismo.

delphi.com.ar 02-02-2004 18:03:53

es IIF, por otro lado te comento que he usado NZ en Acces 2000 sin problemas.

soyhugo 02-02-2004 19:01:33

se solucionó!!!
 
gracias, como he comentado antes, no sé si lo del nz funcionará directamente en la base de datos access, lo que es desde delphi, me sigue diciendo que la función no está definida. Pero sí que he vuelto a probar, lo del 'iif' porque posiblemente antes lo hubiera probado con iff . pues funciona muy bien, te lo agradezco, has solucionado días de búsqueda en esta solución. a ver si ahora me puedes echar una mano con lo de la conexión adoconnection a la base de datos, que le he puesto clave a la bd, y no hay forma de configurarlo en el ado. he puesto como usuario en las caracteristicas el admin que viene por defecto y luego cliqueado lo de dejar la casilla password en blanco. luego me he ido a la pestaña de todas, y le he puesto el password en database password.cuando voy a compilar elprograma, me dice que 'not valid enum'.

gracias.


La franja horaria es GMT +2. Ahora son las 01:20:36.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi