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 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
  #2  
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
  #3  
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
  #4  
Antiguo 18-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
Algo complicado ¿no? A veces me sorprende la facilidad con que algunas cosas se pueden hacer en MySql.

Va otra opción, quizá ésta sí funcione en IB:

Código SQL [-]
select
  cod_proyecto,
  substring('SINO', 2*volumen + 1, 2) as volumen,
  substring('SINO', 2*peso + 1, 2) as peso
from
  transp_total

// Saludos
Responder Con Cita
  #5  
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
Esa también es otra opción, solo que requiere que se agregue la UDF substring a la base de datos...


Saludos...
Responder Con Cita
  #6  
Antiguo 18-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
¡No inventes!

¿Por qué es tan complicado IB? Je, je, bueno, sería ridículo de mi parte ponerme a criticar IB pero me gustaría entender la filosofía que hay detrás. ¿Por qué funciones tan elementales (según yo) no vienen por defecto en el lenguaje?

// Saludos
Responder Con Cita
  #7  
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
Pues quien sabe... es algo que hasta ahora todavía no entiendo... Tal vez es así para apegarse lo más posible al estándar SQL92, no se, podría ser cualquier cosa... jejeje



Saludos...
Responder Con Cita
  #8  
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
Talking

store procedure perfect ¡¡¡¡ lo probe mas no lo implemente en mi reporte dado que como lo explique anteriormente es muy facil desde crystal reports, y como dice roman para que complicarce si existen maneras mas sencillas para solucionar mi caso, claro, un store procedure podria ser mas optimo para otros casos
__________________
Una forma de alcanzar tus metas es ayudando a otros a alcanzar las suyas

Última edición por roman fecha: 18-01-2006 a las 21:23:43.
Responder Con Cita
  #9  
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
Prueba la consulta que hace uso de la UDF, es más simple de implementar... jejeje
Responder Con Cita
  #10  
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
Te prometo que lo intentare
__________________
Una forma de alcanzar tus metas es ayudando a otros a alcanzar las suyas
Responder Con Cita
  #11  
Antiguo 18-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
el_barto

De tu último mensaje eliminé la cita al código de maeyanes. Te pido que no cites mensajes completos, hace más difícil la lectura.
Responder Con Cita
  #12  
Antiguo 19-01-2006
cuburu cuburu is offline
Miembro
 
Registrado: mar 2005
Posts: 63
Poder: 20
cuburu Va por buen camino
Post

Cita:
Empezado por el_barto
store procedure perfect ¡¡¡¡ lo probe mas no lo implemente en mi reporte dado que como lo explique anteriormente es muy facil desde crystal reports, y como dice roman para que complicarce si existen maneras mas sencillas para solucionar mi caso, claro, un store procedure podria ser mas optimo para otros casos
Pues yo pienso que si puedes dejar todo el trabajo pesado a la BD y programas lo minimo indispensable es mejor.

Cuando manejas esta clase de condiciones por medio de Store Procedures, Views o cualquer caso y que la BD puede hacerlo, es mejor dejarselo a ella.

La respuesta que doy es muy simple.

Qué pasaria si de repente te dicen que necesita hacerse una reestructuración de todo el programa o se necesita hacer otra aplicación en un lenguaje diferente para trabajar los mismos datos en la misma BD. Pues ya no tendrías que volver a codificar este tipo de operaciones en la otra aplicación pues ya las tienes dentro de la misma BD. Solo tendrías que llamarlas.

Ademas, cuando se trabaja con grandes volumenes de información, es mejor dejar todo el asunto de integridad referencial, updates, commits, rollbacks y todas esas cosas a la BD y no tratar de controlarlas desde nuestra aplicación..... despues de todo, para que un negocio funcione cada quien debe de hacer su trabajo, y si la BD nos puede ahorrar dolores de cabeza tratando de contener posibles errores en la BD pues hagamoslo.
Responder Con Cita
  #13  
Antiguo 19-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
Cita:
Empezado por cuburu
Pues yo pienso que si puedes dejar todo el trabajo pesado a la BD y programas lo minimo indispensable es mejor.
Al César lo que es del César...

Trabajo pesado habrá de ambos lados, aplicación y servidor.

Cita:
Empezado por cuburu
Cuando manejas esta clase de condiciones por medio de Store Procedures, Views o cualquer caso y que la BD puede hacerlo, es mejor dejarselo a ella.
No sé si una UDF pueda considerarse parte del servidor, pero en el caso de MySql, las funciones mencionadas sí que lo son.

Cita:
Empezado por cuburu
Qué pasaria si de repente te dicen que necesita hacerse una reestructuración de todo el programa o se necesita hacer otra aplicación en un lenguaje diferente para trabajar los mismos datos en la misma BD. Pues ya no tendrías que volver a codificar este tipo de operaciones en la otra aplicación pues ya las tienes dentro de la misma BD. Solo tendrías que llamarlas.
De acuerdo. Pero toma en cuenta que no todas las aplicaciones son susceptibles de cambios tan drásticos y hay que tener cuidado con "¿qué pasa si...?" pues puede uno terminar complicandose la vida por una supuesta futura necesidad. Trabajo en un sistema hecho sobre MySql, y ha funcionado bien durante más de tres años. Y aún cuando he pensado en la posibilidad de migrar a FireBird, mientras no lo haga, me siento cómodo con él y todas las funciones predefinidas que incluye; no las cambiaría en aras de una estandarización o hipotéticos reajustes futuros.

// Saludos
Responder Con Cita
  #14  
Antiguo 21-01-2006
cuburu cuburu is offline
Miembro
 
Registrado: mar 2005
Posts: 63
Poder: 20
cuburu Va por buen camino
En eso tienes toda la razón. Es incoherente tratar de controlar algo que no sabes si se va apresentar o no.

Quizas el error mio fue darle un enfoque basado en experiencia propia. Por lo regular trabajo con sistemas de esta indole y es más sencillo realizar este tipo de "maniobras".
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 04:58:11.


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