Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 30-04-2007
Roilo Roilo is offline
Miembro
 
Registrado: nov 2005
Ubicación: Mayarí, Cuba
Posts: 143
Poder: 19
Roilo Va por buen camino
Podría Null ser igual a 0 ?

Un abraso al Foro:
Echenle un vistazo a esta consulta :

Código SQL [-]
....
UPDATE Datos SET
total = (SELECT uno FROM tabla1 WHERE a=1)+(SELECT dos FROM tabla2 WHERE a=1)

Resulta que cuando no se cumple alguna de las subconsultas el resultado es nulo. Me guataría que si la primera subconsulta no devuelve resultado que lo tome como cero, para así sumar nulo+3 y el resultado de la consulta sea 3.
Qué me sugieren....
Gracias de antemanos.
Responder Con Cita
  #2  
Antiguo 30-04-2007
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
En ese caso es importante saber que motor estas usando, porque podrías utilizar funciones como NVL (Oracle), IsNull (SqlServer), NZ (Access)... para definir un valor por defecto en el caso de que un valor sea NULL.

Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #3  
Antiguo 30-04-2007
Roilo Roilo is offline
Miembro
 
Registrado: nov 2005
Ubicación: Mayarí, Cuba
Posts: 143
Poder: 19
Roilo Va por buen camino
ok

Uso sql Server ...
Responder Con Cita
  #4  
Antiguo 30-04-2007
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
ContraVeneno Va por buen camino
Entonces como ya dijo federico, la función isnull() es la que debes usar.
__________________

Responder Con Cita
  #5  
Antiguo 30-04-2007
Roilo Roilo is offline
Miembro
 
Registrado: nov 2005
Ubicación: Mayarí, Cuba
Posts: 143
Poder: 19
Roilo Va por buen camino
:(

De paso podrías arreglar mi código de ejemplo...
Disculpame la molestia, es que no estoy tan claro.
Responder Con Cita
  #6  
Antiguo 30-04-2007
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.557
Poder: 25
egostar Va camino a la fama
No se si asi está bien pero si estoy mal por favor corrijanme, tengo duda si es sobre la consulta completa o por el valor del select.

Código SQL [-]
UPDATE Datos SET
total = ISNULL( (SELECT uno FROM tabla1 WHERE a=1), 0)+ ISNULL( (SELECT dos FROM tabla2 WHERE a=1),0)

o así

Código SQL [-]
 
UPDATE Datos SET
total = (SELECT ISNULL(uno,0) FROM tabla1 WHERE a=1) + (SELECT ISNULL(dos,0) FROM tabla2 WHERE a=1)

Salud OS.
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #7  
Antiguo 01-05-2007
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
ContraVeneno Va por buen camino
Cita:
Empezado por egostar
No se si asi está bien pero si estoy mal por favor corrijanme
De hecho, las dos formas son correctas.


Cita:
Empezado por Roilo
De paso podrías arreglar mi código de ejemplo...
Y bueno, eso de arreglarte el código, era tan fácil como presionar F1 y buscar en la ayuda la función isnull y esta ayuda te daría todas las herramientas necesarias para que TU mismo hubieras solucionado tu problema.

Saludos.
__________________

Responder Con Cita
  #8  
Antiguo 01-05-2007
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
Cita:
Empezado por ContraVeneno
De hecho, las dos formas son correctas...
Ojo que no son iguales!... Si una de las subconsultas no retornan registros, y el ISNULL esta "dentro" de la subconsulta como en el segundo ejemplo, el resultado será NULL. En cambio si el ISNULL abarca toda la subconsulta el valor será "0" o el valor del parámetro pasado.
Roilo tambien es importante que tengas en cuenta, que si algunas de las subconsultas retornan mas de un registro, la instrucción fallará.

Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
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
cambiar campo null a not null andressanchez Firebird e Interbase 8 18-09-2006 22:00:09
efecto igual al cerrar el Win XP? DM2005 Varios 7 04-08-2006 23:51:00
office 2k no es igual que delphi? nicocer C++ Builder 6 21-06-2005 15:29:09
...otro igual no!!!... Jure Humor 2 23-07-2004 21:16:45
La impresión no se ve igual Newbie Impresión 2 06-11-2003 02:49:55


La franja horaria es GMT +2. Ahora son las 21:48:50.


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