Ver Mensaje Individual
  #1  
Antiguo 31-01-2009
Avatar de rgstuamigo
rgstuamigo rgstuamigo is offline
Miembro
 
Registrado: jul 2008
Ubicación: Santa Cruz de la Sierra-Bolivia
Posts: 1.646
Reputación: 17
rgstuamigo Va por buen camino
Thumbs up No me sale esta consulta ¿Por que?

Hola amigos, tengo la siguiente tabla:
Código SQL [-]
Create table Obras(#Obra = proyecto
Nro_Ob  int unsigned auto_increment not null primary key,
Nombre_Obra  varchar(80),
Cliente int unsigned,
Fecha_Contrato date,
Precio float,
Moneda int unsigned,
Fecha_I date,
Plazo varchar(20),
Lugar  varchar(60),
Encargado int unsigned,
Firmado_Parte_Contraria varchar(50),#Nombre del cliente  o representante que firmo el contrato
Firmado_Por int unsigned,#empleado que aprobo o dio el visto bueno
Estado varchar(1),# A=Activo,T=Terminado,etc.
Descripcion varchar(100),
foreign key(Moneda)references Moneda(Cod_mo)on update cascade,
foreign key(Firmado_Por)references Empleado(ci)on delete set null on update cascade,
foreign key(Encargado)references Empleado(ci)on delete set null on update cascade,
foreign key(Cliente)references Cliente(Cod_Cli)on delete set null on update cascade
)engine=innodb;
aqui la tabla empleado//he puesto solo los campos de interes
Código SQL [-]
create table Empleado(
ci int unsigned not null primary key,
nombre varchar(30)
)engine=innodb;
Aqui la tabla Moneda
Código SQL [-]
create table Moneda(
Cod_Mo int unsigned not null primary key,
Sigla varchar(5)
)engine=innodb;
aqui la tabla la tabla cliente
Código SQL [-]
create table Cliente(
Cod_Cli int unsigned auto_increment not null primary key,
Razon_Social varchar(30)
)engine=innodb;
Bueno de algunas tabla como les dije solo he puesto los campos de interes .
Bueno.... resulta que quiero seleccionar todos los registros de la tabla obras de manera que los campos que son foraneos(Foreign key) en ves de mostrarme el codigo o nro correspondiente me muestre mas bien el nombre que corresponde ese codigo, es decir en el caso del cliente que me muestre la Razon_Social y no el Cod_Cli, en el caso de Moneda me muestre la sigla y no el Cod_Mo,en el caso Encargado y Firmado_Por, me salga el nombre y no el CI(Carnet de Identidad) esto para ambos casos tanto para el atributo Encargado y Firmado_por de la tabla obras.
Cave saber que lo he intando con esta consulta:
Código SQL [-]
Select
Nro_Ob as Nro,
Nombre_Obra,
Razon_Social as Nombre_Cliente,
Fecha_Contrato,
Precio,
Sigla,
Fecha_I as Fecha_Inicio,
Plazo,
Lugar,
Nombre as Encargado,
Firmado_Parte_Contraria,
Nombre as Aprobado_Por,
Estado as Estado_Actual,
Descripcion from Obras o,Empleado e,Moneda m,Cliente c 
Where o.Cliente=c.Cod_Cli and o.Encargado=e.ci and o.Moneda=m.Cod_Mo 
and o.Firmado_Por=e.ci;
Pero por alguna razon el motor me bota una respuesta vacia;
Que estoy haciendo de mal?
Muchas gracias de antemano.....
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
Responder Con Cita