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 17-01-2006
Avatar de el_barto
el_barto el_barto is offline
Miembro
 
Registrado: may 2005
Ubicación: Bogota Colombia
Posts: 533
Poder: 20
el_barto Va por buen camino
Arrow Hacer mascaras en consultas sql.

Buenos dias:

estoy haciendo una seleccion de unos proyectos hechos en mi aplicativo pero tengo una duda:

los datos que me imprime son algo asi:

Código:
cod_proyecto     ///// volumen    ///// peso
1                /////      1    /////    0
2                /////      0    /////    1
lo que deseo es cambiar el 1 por Si y cambiar el 0 por No para los campos volumen y peso, es posible hacer el cambio visual solo en la seleccion sin modificar los datos de la base ???

Gracias, esta es mi consulta sql, uso interbase 6.


Código SQL [-]
 
select cod_proyecto, volumen,peso
from transp_total
__________________
Una forma de alcanzar tus metas es ayudando a otros a alcanzar las suyas

Última edición por roman fecha: 17-01-2006 a las 23:00:15.
Responder Con Cita
  #2  
Antiguo 17-01-2006
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Desconozco si IB tiene algún tipo de condicional. En MySql, podrías hacer:

Código SQL [-]
select
  cod_proyecto,
  if(volumen = 1, 'SI', 'NO') as volumen,
  if(peso = 1, 'SI', 'NO') as peso
from
  transp_total

Mira a ver si IB tiene condicionales.

Otra opción es dejar la consulta como está y Utilizar el evento OnGetText del dataset para que muestre los valores que deseas.

// Saludos
Responder Con Cita
  #3  
Antiguo 17-01-2006
Avatar de vtdeleon
vtdeleon vtdeleon is offline
Miembro
 
Registrado: abr 2004
Ubicación: RD & USA
Posts: 3.236
Poder: 24
vtdeleon Va por buen camino
Saludos

Tambien podrias probar con CASE
Código SQL [-]
select
  cod_proyecto,
  Case volumen when
    1 then 'SI'
  Else
     'NO'
  End,
  Case peso when
    1 then 'SI'
  Else 
     'NO'
  End
from
  transp_total
Ahi tienes para escoger, las dos son validas!
__________________
Van Troi De León
(Not) Guía, Code vB:=Delphi-SQL, ¿Cómo?
Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto!
Responder Con Cita
  #4  
Antiguo 18-01-2006
Avatar de el_barto
el_barto el_barto is offline
Miembro
 
Registrado: may 2005
Ubicación: Bogota Colombia
Posts: 533
Poder: 20
el_barto Va por buen camino
Cita:
Empezado por vtdeleon
Saludos

Código SQL [-]
select
cod_proyecto,
Case volumen when
1 then 'SI'
Else
'NO'
End,
Case peso when
1 then 'SI'
Else 
'NO'
End
from
transp_total
lo he intentado hacer asi pero me indica :

Cita:
Token unknown - line 3, char 12
when
__________________
Una forma de alcanzar tus metas es ayudando a otros a alcanzar las suyas
Responder Con Cita
  #5  
Antiguo 18-01-2006
Avatar de el_barto
el_barto el_barto is offline
Miembro
 
Registrado: may 2005
Ubicación: Bogota Colombia
Posts: 533
Poder: 20
el_barto Va por buen camino
No lo pude hacer desde ib asi que hice mi reporte normal pero le inserte la siguiente formula y listo me quedo hecho:

Código:
IIF ({Query.PESO} = 1,'Si','No')
Gracias totales
__________________
Una forma de alcanzar tus metas es ayudando a otros a alcanzar las suyas
Responder Con Cita
  #6  
Antiguo 18-01-2006
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 24
maeyanes Va por buen camino
Puedes probar mediante un store procedure...

Código SQL [-]
create procedure sp_transp_total
returns (
  cod_proyecto integer, /* o varchar(n) */
  volumen char(2),
  peso char(2))
as
  declare variable volumen_int integer;
  declare variable peso_int integer;
begin
  for
    select cod_proyecto, volumen, peso from transp_total into
      :cod_proyecto, :volumen_int, : peso_int; /* El : y peso no llevan espacio */
  do
  begin
    if (volumen_int == 1) then
      volumen = 'SI';
    else
      volumen = 'NO';
    if (peso_int == 1) then
      peso = 'SI';
    else
      peso = 'NO';
    suspend;
  end
end^

Y este ya lo puedes usar:

Código SQL [-]
select cod_proyecto, volumen, peso from sp_transp_total



Saludos...
Responder Con Cita
  #7  
Antiguo 18-01-2006
Avatar de el_barto
el_barto el_barto is offline
Miembro
 
Registrado: may 2005
Ubicación: Bogota Colombia
Posts: 533
Poder: 20
el_barto Va por buen camino
Gracias

Cita:
Empezado por roman
Código SQL [-]
select
cod_proyecto,
if(volumen = 1, 'SI', 'NO') as volumen,
if(peso = 1, 'SI', 'NO') as peso
from
transp_total
Ya lo habia intentado hacer asi por simple intuicion pero no me habia funcionado por que no reconocia el if.

Cita:
Empezado por roman
Mira a ver si IB tiene condicionales.
pues despues de leer tu mensaje enseguida me puse a buscar y encontre que no. Aqui

Cita:
Empezado por roman
Otra opción es dejar la consulta como está y Utilizar el evento OnGetText del dataset para que muestre los valores que deseas.
No lo estoy haciendo para usarlo en delphi, si no cuadrando el sql para despues pasarlo a Crystal SQL Design.
__________________
Una forma de alcanzar tus metas es ayudando a otros a alcanzar las suyas
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
Delphi y SQL server 2000 whiti MS SQL Server 19 17-05-2005 22:06:54
Programa para conexion con servidor SQL en red RyAr MS SQL Server 2 17-02-2005 01:34:36
Como hacer un Query con dbf y Sql Leomar SQL 0 02-02-2005 14:28:52
Error en SQL tgsistemas SQL 1 30-12-2003 00:04:45


La franja horaria es GMT +2. Ahora son las 10:13:51.


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