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-03-2004
ebeltete ebeltete is offline
Miembro
 
Registrado: may 2003
Posts: 236
Poder: 22
ebeltete Va por buen camino
consulta sql

Tengo una tabla clientes.dbf con varios campos, entre ellos: cl_depto, cl_zona, cl_giro, por otra parte tengo una tabla clases.dbf con tres campos cs_codigo, vc_codigo, vc_nombre; en el campo cs_codigo existen tres tipos de registros: ZONA, GIRO, DEPT.
Se tienen que cumplir:

en clientes cl_depto=vc_codigo de clases y cs_codigo='DEPT'
en clientes cl_giro =vc_codigo de clases y cs_codigo='GIRO'
en clientes cl_zona =vc_codigo de clases y cs_codigo='ZONA'

ahora como hago para hacer una consulta que me devuelva todos los registros de clientes con el campo vc_nombre de clases asociado a los campos de clientes antes mencionado.
Tal vez quedo media entreverada la pregunta?, gracias.
Uso un Query con Delphi 5.

Ejemplo del resultado de la consulta

clientes.dbf: registro1= (nombre='MARTIN', cl_zona=2, cl_giro=2, cl_dept=5)

clases.dbf: registro1= (cs_codigo='ZONA',vc_codigo=2,vc_nombre='PUERTO')
registro2= (cs_codigo='GIRO',vc_codigo=2,vc_nombre='TIENDA')
registro3= (cs_codigo='DEPT',vc_codigo=5,vc_nombre='MENDOZA')

EL RESULTADO= (MARTIN, PUERTO, TIENDA, MENDOZA)
Responder Con Cita
  #2  
Antiguo 17-03-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
Te sugiero evaluar el utilizar una tabla diferente para cada tipo de "clase".. es decir, no es mejor tener las tablas zona.dbf, giro.dbf y dept.dbf... que sentido tiene tener todo en una sola tabla???

De cualquier forma, podes hacer un inner join con tres instancias de la misma tabla, filtrando cada instancia según el "uso" que le des.. es decir, una vez para zonas, otra para giros y otra para departamentos.

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #3  
Antiguo 18-03-2004
ebeltete ebeltete is offline
Miembro
 
Registrado: may 2003
Posts: 236
Poder: 22
ebeltete Va por buen camino
Gracias Juan, el tema es que estoy haciendo la consulta en una base de datos existente, y no logro dar con la consulta usando inner join, es mucha molestia que me tires una lineas?
gracias
Responder Con Cita
  #4  
Antiguo 18-03-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
ahi va un ejemplo con dos clases...

Código:
select a.campo1, b.campo2, c.campo2
  from tabla1 a inner join tabla2 b on a.campo2 = b.campo1 and b.campo2 = 'CLASE1' 
                  inner join tabla3 c on c.campo3 = b.campo1 and b.campo2 = 'CLASE2'
Como podes ver, se usa una instancia de la tabla para la clase1 y otra instancia de la tabla para la clase2.

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #5  
Antiguo 19-03-2004
ebeltete ebeltete is offline
Miembro
 
Registrado: may 2003
Posts: 236
Poder: 22
ebeltete Va por buen camino
Gracias maestro, estaba boleado.
Otra consulta, estoy usando updatesql, funciona bien pero cuando estoy modificando un registro tengo un problema, el tema es que modifico un registro de un campo de la tabla y le doy applyupdates y lo modifica, voy a otro registro en el mismo campo hago lo mismo y lo modifica pero si vuelvo para modificar el anterior me aparece el mensaje "UPDATE FAILED" el tema es raro, pues si cierro y abro el query puedo volver a modificarlos.
Responder Con Cita
  #6  
Antiguo 19-03-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
Hola ebeltete.

Te recomiendo la lecutra de la guía de estilo de los foros. Veo que no sos tan nuevo por aqui, y es de esperar que a estas alturas comprendas bien su contenido. En esta ocasión, lo propio es habrir una nuevo hilo para tu nueva pregunta.

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
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 20:15:16.


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