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--Empleado
Ci | Nombre
11111 | Carlos
22222 | Ana
33333 | Juan
-- Dato
Id | Valor | fkEmpleado | fkAtributo
1 | 80 | 11111 | 2
2 | M | 22222 | 1
--Atributo
IdAtributo | NombreAtributo
1 | Talla
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 originalNombreAtributo | Valor | Ci
Talla | "null" | 11111
Peso | 80 | 11111
Talla | M | 22222
Peso | "null" | 22222
Talla | "null" | 33333
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 originalSELECT
dbo.Dato.Valor,
dbo.Atributo.NombreAtributo,
dbo.Empleado.Ci
FROM Empleado,
dbo.Atributo
FULL JOIN dbo.Dato ON dbo.Dato.FkAtributo = dbo.Atributo.IdAtributo
WHERE Valor IS NULL OR Ci=FkEmpleado
Muchas gracias