FTP | CCD | Buscar | Trucos | Trabajo | Foros |
#1
|
|||
|
|||
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) |
#2
|
||||
|
||||
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 |
#3
|
|||
|
|||
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 |
#4
|
||||
|
||||
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' Hasta luego.
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
#5
|
|||
|
|||
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. |
#6
|
||||
|
||||
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 |
|
|
|