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 10-12-2008
Avatar de ingabraham
ingabraham ingabraham is offline
Miembro
 
Registrado: ago 2007
Posts: 614
Poder: 17
ingabraham Va por buen camino
Consulta en Cero si no se encuentra datos

Hola.
DELPHI E INTERBASE 6.0
Realizo mi consulta y la muestro en un dbgrid
Código SQL [-]
select cedula,valor from nomina where concepto='hora extra' and cedula='782538';
ok
Yo quiero lo siguiente que si no encuentra el valor de la hora extra me muestre un cero.

alguna idea de como hacerlo, por q me deja la casilla en blanco.
gracias

Última edición por ingabraham fecha: 10-12-2008 a las 17:00:39.
Responder Con Cita
  #2  
Antiguo 10-12-2008
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
¿Qué base de datos estás utilizando?
Se puede usar la clausula IF en la SQL, pero varía segun el SGBD.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #3  
Antiguo 10-12-2008
Avatar de ingabraham
ingabraham ingabraham is offline
Miembro
 
Registrado: ago 2007
Posts: 614
Poder: 17
ingabraham Va por buen camino
Cita:
Empezado por Neftali Ver Mensaje
¿Qué base de datos estás utilizando?
Se puede usar la clausula IF en la SQL, pero varía segun el SGBD.
Nada no se puede utilizo interbase 6.0
Responder Con Cita
  #4  
Antiguo 10-12-2008
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
Podrías utilizar los métodos "isEmpty" o "isNull" de tu dataset...
__________________

Responder Con Cita
  #5  
Antiguo 10-12-2008
Avatar de ingabraham
ingabraham ingabraham is offline
Miembro
 
Registrado: ago 2007
Posts: 614
Poder: 17
ingabraham Va por buen camino
Cita:
Empezado por ContraVeneno Ver Mensaje
Podrías utilizar los métodos "isEmpty" o "isNull" de tu dataset...
Disculpa pero no puedo por que muestro los datos de todos mis empleados en el dbgrid no de uno solo
ej:
ced valor
xxx xxx
yyy yyy
zzz zzz
Responder Con Cita
  #6  
Antiguo 10-12-2008
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.556
Poder: 25
egostar Va camino a la fama
Cita:
Empezado por ingabraham Ver Mensaje
Disculpa pero no puedo por que muestro los datos de todos mis empleados en el dbgrid no de uno solo
ej:
ced valor
xxx xxx
yyy yyy
zzz zzz
Hola

Tal vez puedes utilizar la funcion COALESCE

Salud OS
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #7  
Antiguo 10-12-2008
Avatar de ingabraham
ingabraham ingabraham is offline
Miembro
 
Registrado: ago 2007
Posts: 614
Poder: 17
ingabraham Va por buen camino
Cita:
Empezado por egostar Ver Mensaje
Hola

Tal vez puedes utilizar la funcion COALESCE

Salud OS

Function unknow

no me reconoce la funcion en interbase 6.0
Responder Con Cita
  #8  
Antiguo 10-12-2008
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.556
Poder: 25
egostar Va camino a la fama
Cita:
Empezado por ingabraham Ver Mensaje
Function unknow

no me reconoce la funcion en interbase 6.0
Parece ser que esa función está disponible a partir de Interbase 7.0

Salud OS
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #9  
Antiguo 10-12-2008
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Cita:
Empezado por ingabraham Ver Mensaje
Function unknow

no me reconoce la funcion en interbase 6.0
Entonces tendras que usar el evento OnGetText de tu campo Valor.

Código Delphi [-]
procedure TForm1.Query1ValorGetText(Sender: TField; var Text: String;
  DisplayText: Boolean);
begin
  if Sender.AsString = '' then
   Text := '0'
  else
   Text := Sender.AsString;
end;

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #10  
Antiguo 10-12-2008
Avatar de ingabraham
ingabraham ingabraham is offline
Miembro
 
Registrado: ago 2007
Posts: 614
Poder: 17
ingabraham Va por buen camino
Cita:
Empezado por Caro Ver Mensaje
Entonces tendras que usar el evento OnGetText de tu campo Valor.


Código Delphi [-]
procedure TForm1.Query1ValorGetText(Sender: TField; var Text: String;
DisplayText: Boolean);
begin
if Sender.AsString = '' then
Text := '0'
else
Text := Sender.AsString;
end;





Saluditos
Disculpa pero no utilizo dataset y mis (dbgrid-datasourse-querys) los utilizo para realizar varias consultas independientes.
gracias por la ayuda pero no podria utilizar ese codigo.

Última edición por ingabraham fecha: 10-12-2008 a las 21:06:08.
Responder Con Cita
  #11  
Antiguo 11-12-2008
pcicom pcicom is offline
Miembro
 
Registrado: may 2003
Ubicación: MONTERREY MEXICO
Posts: 253
Poder: 21
pcicom Va por buen camino
Código SQL [-]

SELECT '782538' AS cedula,(case WHEN valor<>NULL THEN valor ELSE 0 END)  AS valorSinNulo FROM nomina where concepto='hora extra' and cedula='782538';

Lo que tendrias que hacer es crear el comando SQL segun los campos que necesites..

Código Delphi [-]

cCedula := '782538';
cConcepto := 'hora extra';

cSql := 'SELECT' + QuotedStr(cCedula) + ' as cedula, (case WHEN valor<>NULL THEN valor ELSE 0 END)  AS valorSinNulo FROM nomina where concepto=' + QuotedStr(cConcepto)+' and cedula='+QuotedStr(cCedula);

qry.clear;
qry.add(cSql);
qry.open;
__________________
Poco ha de saber el que no pregunta.. Yo por eso soy un pregunton
Responder Con Cita
  #12  
Antiguo 05-01-2009
Avatar de ingabraham
ingabraham ingabraham is offline
Miembro
 
Registrado: ago 2007
Posts: 614
Poder: 17
ingabraham Va por buen camino
case no lo reconoce interbase

discupla pero el case no es aceptado en interbase
Responder Con Cita
  #13  
Antiguo 06-01-2009
Avatar de xander
xander xander is offline
Miembro
 
Registrado: jul 2006
Posts: 499
Poder: 18
xander Va por buen camino
lo unico que podrias hacer en IB6 sería una UDF que te devolviera el valor que necesitas dada la condición... es decir implementar una funcion similar al IIF via una UDF... revisa en google debe haber alguna implementación por ahí ya hecha por algún ruso sin novia.

Saludos
__________________
"Hey, nena, debe ser genial ser tú y verme a mí mismo..."
Responder Con Cita
  #14  
Antiguo 06-01-2009
Avatar de Kipow
Kipow Kipow is offline
Miembro
 
Registrado: abr 2006
Ubicación: Guatemala
Posts: 329
Poder: 19
Kipow Va por buen camino
proba con

Código SQL [-]
select cedula,ABS(valor) 
from nomina 
where concepto='hora extra' and cedula='782538';

asi lo hacia yo hasta que migre a firebird 2.1 y me entere de la funcion COALESCE.

Saludos.
Responder Con Cita
  #15  
Antiguo 06-01-2009
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Off-topic

Cita:
Empezado por xander Ver Mensaje
revisa en google debe haber alguna implementación por ahí ya hecha por algún ruso sin novia.

Saludos
Disculpame xander, pero no sabía que los informáticos rusos no tenían novia. Suena un tanto despectiva tu frase.

Te felicito a ti por tener alguien a tu lado.

Cita:
Empezado por Kipow Ver Mensaje
proba con

Código SQL [-]select cedula,ABS(valor) from nomina where concepto='hora extra' and cedula='782538';


asi lo hacia yo hasta que migre a firebird 2.1 y me entere de la funcion COALESCE.

Saludos.
Nomás aclaro que COALESCE existe desde Firebird 1.5

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
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
Cuando cero - cero es 5.755533321E-13 IVAND Firebird e Interbase 4 12-04-2006 16:06:26
No encuentra el path despues de migrar datos Walterdf Conexión con bases de datos 2 07-03-2005 19:17:17
division por cero kalimero Varios 7 21-12-2004 16:24:28
no encuentra la base de datos k2k2k2 Firebird e Interbase 7 11-05-2004 23:48:33
Crystal Reports desde cero, cero, cero. Repelus Impresión 1 08-03-2004 21:23:14


La franja horaria es GMT +2. Ahora son las 02:45:10.


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