Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 18-04-2006
Avatar de AGAG4
AGAG4 AGAG4 is offline
Miembro
 
Registrado: ago 2004
Ubicación: Los Mochis, Sinaloa, México
Posts: 1.420
Poder: 22
AGAG4 Va por buen camino
Duda sobre COALESCE

Estoy realizando varias sentencias SQL en firebird y me estoy percatando que cuando tomo las sumas de X campo(s) con COALESCE y SUM me da diferencias, por ejemplo:
Código SQL [-]
/*En esta consulta me da el TOTAL MENOR que la segunda*/
Select CoalEsce(Sum(Total),0) from tabla
 
ó
 
Select Sum(CoalEsce(Total,0)) from tabla
Buscando el objetivo de COALESCE, me percato que los valores nulos los convierte al valor donde se le especifica en el segundo parámetro COALESCE(Valor,0) en este caso es un CERO.

Cual es la forma más correcta de usar el Coalesce con el SUM ????

Responder Con Cita
  #2  
Antiguo 18-04-2006
Avatar de RONPABLO
[RONPABLO] RONPABLO is offline
Miembro Premium
 
Registrado: oct 2004
Posts: 1.514
Poder: 22
RONPABLO Va por buen camino
Pues a mi tambien me paso algo similar y decidi hacerlo de la segunda manera (Es decir el coalesce dentro del sum), ya que en algunas ocaciones al encontrar algun valor null no me hacia la suma correctamente
Responder Con Cita
  #3  
Antiguo 20-04-2006
Avatar de AGAG4
AGAG4 AGAG4 is offline
Miembro
 
Registrado: ago 2004
Ubicación: Los Mochis, Sinaloa, México
Posts: 1.420
Poder: 22
AGAG4 Va por buen camino
mmmm

Haciendo pruebas he llegado a la conclusión de que dejando así:
COALESCE((SUM(CAMPO),0)

Asi si me toma las SUMAS y si lo dejo ala inversa me salen los importes en CERO.

Aparentemente debería de ser SUM(COALESCE(CAMPO,0))

Que Raro!!!!
Responder Con Cita
  #4  
Antiguo 20-04-2006
Avatar de lpmlpm
lpmlpm lpmlpm is offline
Miembro
 
Registrado: ago 2005
Posts: 136
Poder: 20
lpmlpm Va por buen camino
No lo veo raro, al contrario creo que tu descubrimiento es como debe de ser...

Haciendo recapitulación, la funcion de agregado Sum solo suma los elementos que son distintos de Null, siendo congruente porque no puede sumar un valor desconocido, tan es asi como que cuando aplicas un sum a una columna donde todos los registros valen null el resultado de la suma es null, porque es como decir, sumar un conjunto de Noseques pues me da un noseque... por ese comportamiento de evitar los valores nulos no tiene caso usar el coalesce dentro de la funcion de agregado, asi que si lo que quieres es que no te muestre el valor nul al final del calculo ahi si es valido usar el coalesce para que en caso de que la suma no este definida entonces si mejor muestre un valor cero.
__________________
"Lo mejor de no saber hacer nada es que se tiene mucho tiempo libre."
Responder Con Cita
  #5  
Antiguo 28-04-2006
Avatar de AGAG4
AGAG4 AGAG4 is offline
Miembro
 
Registrado: ago 2004
Ubicación: Los Mochis, Sinaloa, México
Posts: 1.420
Poder: 22
AGAG4 Va por buen camino
ok

Gracias... Que tenga buen día.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Duda sobre With lucasarts_18 Varios 6 26-08-2005 20:44:08
Algo sobre COALESCE jwmoreira Firebird e Interbase 1 08-03-2005 21:23:20
Algo como NVL o COALESCE jwmoreira MS SQL Server 4 07-03-2005 22:57:48
Duda sobre BDE vs IBX ESA Firebird e Interbase 3 04-03-2004 18:20:07
Duda sobre ADO Omar Alejandro Conexión con bases de datos 7 31-05-2003 20:52:58


La franja horaria es GMT +2. Ahora son las 02:04:16.


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
Copyright 1996-2007 Club Delphi