Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Consulta de 3 tablas

Estas en el tema de Consulta de 3 tablas en el foro de SQL Server en Foros del Web. Hola un favor necesito hacer una consulta de 3 tablas (Empleado, Dato y Atributo) Donde la Tabla empleado tiene los datos personales del empleado y ...
  #1 (permalink)  
Antiguo 13/12/2015, 09:34
 
Fecha de Ingreso: diciembre-2015
Ubicación: Bolivia
Mensajes: 1
Antigüedad: 8 años, 4 meses
Puntos: 0
Consulta de 3 tablas

Hola un favor necesito hacer una consulta de 3 tablas (Empleado, Dato y Atributo) Donde la Tabla empleado tiene los datos personales del empleado y su clave principal es el Ci, La tabla Dato tiene "Valor", "fKEmpleado" (llave foránea a a la tabla Empleado), "fkAtributo" (Llave foránea a la tabla Atributo) y como llave principal el "Id"....... Mi tabla Atributo tiene "NombreAtributo" y el "IdAtributo" como llave principal....
Lo que deseo hacer una consulta e las 3 tablas que aparezcan todos los nombres de atributo que existan con su respectivo valor para cada Empleado y si alguno tiene valor null que también aparezca, por ejemplo:

Código SQL:
Ver original
  1. --Empleado
  2. Ci          |  Nombre
  3. 11111      |  Carlos
  4. 22222      |  Ana
  5. 33333      |  Juan
  6.  
  7. -- Dato
  8. Id  |  Valor      |   fkEmpleado   |   fkAtributo
  9. 1   |  80        |  11111          |   2
  10. 2   |  M         |   22222         |    1
  11.  
  12. --Atributo
  13. IdAtributo  |  NombreAtributo
  14.        1    |  Talla
  15.         2   |  Peso
Esas serían mis 3 tablas con algunos datos y lo que yo quiero que muestre sería lo siguiente:
Código SQL:
Ver original
  1. NombreAtributo   |   Valor   |   Ci
  2.         Talla    |   "null"  | 11111
  3.         Peso     |   80      | 11111
  4.         Talla    |     M     | 22222
  5.         Peso     |   "null"  | 22222
  6.         Talla    |   "null"  | 33333
  7.         Peso     |   "null"  | 33333
Es decir todos los empleados con sus distintos atributos y sus valores (tengan un valor asignado o no)

Probé con varias consultas y esta es la que mas se acerca que me muestra la lista pero no muestra los valores nulos de los atributos que ya se asignaron a otros empleados, en el anterior ejemplo no mostraría la talla y peso de Juan:
Código SQL:
Ver original
  1. SELECT
  2. dbo.Dato.Valor,
  3. dbo.Atributo.NombreAtributo,
  4. dbo.Empleado.Ci
  5. FROM Empleado,
  6. dbo.Atributo
  7. FULL JOIN  dbo.Dato ON dbo.Dato.FkAtributo = dbo.Atributo.IdAtributo
  8. WHERE Valor IS NULL OR Ci=FkEmpleado

Muchas gracias

Última edición por gnzsoloyo; 13/12/2015 a las 10:02
  #2 (permalink)  
Antiguo 14/12/2015, 11:09
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Consulta de 3 tablas

¿Que no te hace falta un FULL JOIN entre EMPLEADO y ATRIBUTO?
__________________
MCTS Isaias Islas
  #3 (permalink)  
Antiguo 14/12/2015, 11:18
 
Fecha de Ingreso: agosto-2010
Mensajes: 126
Antigüedad: 13 años, 8 meses
Puntos: 9
Respuesta: Consulta de 3 tablas

Hola que tal, pienso que es algo así
Código SQL:
Ver original
  1. SELECT a.NombreAtributo,
  2.        d.Valor,
  3.        e.Ci
  4. FROM Atributo a LEFT JOIN Dato d ON a.IdAtributo = dfkAtributo
  5.                 LEFT JOIN Empleado e ON e.Ci = d.fkEmpleado
  #4 (permalink)  
Antiguo 15/12/2015, 11:26
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Consulta de 3 tablas

¿Con LEFT JOIN te da los valores NULL?
__________________
MCTS Isaias Islas

Etiquetas: joins, null
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:09.