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 01-11-2003
vetustas vetustas is offline
Miembro
 
Registrado: oct 2003
Posts: 77
Poder: 21
vetustas Va por buen camino
duda sql

Hola!
Uso delphi 5 y Paradox. Tengo una tabla de empresas y otra de trabajos (ofertados por cada una de las empresas). Luego tengo un formulario donde el usuario rellena una serie de preferencias:lugar, tipo, sueldo... (aunque no es obligatorio rellenar todos las preferencias). Lo que quiero es una consulta en sql que me muestre los trabajos que cumplan las preferencias elegidas o que más se acerquen a ellas. Es posible eso?
Muchas gracias
Responder Con Cita
  #2  
Antiguo 01-11-2003
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Si que es posible, pero no dices que campos tiene la tabla empresas, es decir como casa con trabajos ofertados.

Código:
Select e.Codigo, t.Codigo, t.Sueldo
From Empresas as e, Trabajos as t
Where e.Codigo = t.Codigo
And e.Sueldo >= QuotedStr(Edit1.text)
El SQL está en pseudocódigo, tienes que adaptarlo, pero más o menos ésta es la idea.

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #3  
Antiguo 03-11-2003
vetustas vetustas is offline
Miembro
 
Registrado: oct 2003
Posts: 77
Poder: 21
vetustas Va por buen camino
En la consulta sql de antes, no me reconoce el campo text del combo con lo cual no me puede comparar con el de la tabla. El código que tengo es el siguiente:

Código:
  modulo.qryPreferencias.Close;
  modulo.qryPreferencias.sql.Text:= 'select e.cod_Empresa, t.cod_Empresa, t.Tipo_Practica 
from empresa as e, practica as t 
where e.cod_Empresa = t.cod_Empresa
and t.Tipo_Practica = (Form_Preferencias.ComboBox_Tipo).Text';
  modulo.qryPreferencias.Open;
ah! y empresa y practica casa mediante el código. Muchas gracias
Responder Con Cita
  #4  
Antiguo 03-11-2003
Viet Viet is offline
Miembro
 
Registrado: jul 2003
Ubicación: Argentina - Mar del Plata
Posts: 252
Poder: 21
Viet Va por buen camino
tendrias que sacar el valor del combo del armado de la Query
Código:
 
modulo.qryPreferencias.Close;
  modulo.qryPreferencias.sql.Text:= 'select e.cod_Empresa, t.cod_Empresa, t.Tipo_Practica 
from empresa as e, practica as t 
where e.cod_Empresa = t.cod_Empresa
and t.Tipo_Practica = ' + Form_Preferencias.ComboBox_Tipo.Text;
  modulo.qryPreferencias.Open;
Suerte
__________________
Marín Ignacio Borthiry (Viet) - "El hombre arriesga su vida cada vez que elije y eso es lo que lo hace libre" ;)
Responder Con Cita
  #5  
Antiguo 04-11-2003
vetustas vetustas is offline
Miembro
 
Registrado: oct 2003
Posts: 77
Poder: 21
vetustas Va por buen camino
Ahora ya me reconoce lo del box, pero releyendo lo que me habia contestado Marcos en este hilo...no me he explicado bien. Lo que tengo es una lista de preferencias. Las preferencias son las siguientes: créditos, tipo, lugar, mes, duracion... La idea es encontrar aquella que mejor se adapte a esas preferencias. A ver si me explico: pongo un ejemplo
el usuario introduce
créditos: 12
tipo: gestion
lugar1: asturias
mes: enero
duracion (pongamos q lo deja en blanco)

Ahora supongamos q no existen trabajos q reunan las 4 condiciones (12, gestion, asturias, enero), la consulta deberia enseñarme aquellos q cumplan: 12, gestion, asturias y cualquier otro mes. Que no hay pues entonces los q cumlplan: 12, gestion y otro lugar.

Espero que me hayais entendido algo.

Muchisimas gracias
Responder Con Cita
  #6  
Antiguo 04-11-2003
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Solamente voy a lanzar una idea, si te gusta la desarrollas y nos dices si funciona.

1.- Con una estructura de tipo Case.
evaluamos que condiciones contienen algo, por lo tanto ya sabremos cual no tenemos que añadir al SQL que pensamos armar.

2.- Hago tantos consultas como Condiciones puso el usuario, es decir si dejo en blanco una de cuatro, construyo 3 Consultas SQL.

Lanzo la primera sino devuelve nada, la marco como no válida puesto que no hay nada que responda a la preguntado

Con esto me quedo solamente con las que devuelven datos, supongamos que son tres.


luego quedaría combinarlas entre sí es decir

MiVariableTexto:=Sql1+Sql2

abro esta consulta, si devuelve algo, la combino con la 3, de esta manera, me aseguro que solamente trabajo con las preguntas que siempre devuelven registros, y en la segunda fase, las combino al máximo, es decir si las 3 combinadas devuelve algo, ya lo tengo, sino tendría que combinar 1 a 1 y quedarme o bien con la que más registros devuelva si las dos me dan resultados o con la que devuelva algo, si es que una sola combinación funciona.

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
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


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


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