Dado um esquema das relações a seguir, qual seria um comando SQL que responderia ao seguinte questionamento: "Quais os nomes dos empregados do departamento cujo código é 307 que não gozaram nenhum dia de férias no ano de referência de 2005?
" Esquema das relações:
Empregados : (Cód_Empregado, Nome_Empregado, Cód_Departamento) Departamentos : (Cód_Departamento, Nome_Departamento)
Férias : (Cód_Empregado, Ano_Referencia, Data_Inicio, Data_Final)
Observações:
* Um departamento possui vários empregados e cada empregado tem que estar lotado necessariamente em um único departamento;
* Um empregado pode gozar vários períodos de férias, mas somente poderá registrar uma única férias para cada ano de referência;
SELECT Nome_Empregado FROM Empregados WHERE Empregados.Cód_Empregado NOT IN (SELECT Férias.Cod_Empregado FROM Férias HAVING (Ano_Referencia = 2005) AND (Cod_Departamento = 307);
SELECT Nome_Empregado FROM Empregados, Férias WHERE (Empregados.Cod_Empregado = Férias.Cód_Empregado) AND (Cod_Departamento = 307) AND (Cód_Empregado <> Férias.Cod_Empregado) HAVING (Ano_Referencia = 2005);
SELECT Nome_Empregado FROM Empregados, Férias WHERE (Empregados.Cod_Empregado = Férias.Cód_Empregado) AND (Cod_Departamento = 307) AND (Cód_Empregado NOT IN (SELECT Cod_Empregado FROM Férias)) HAVING (Ano_Referencia = 2005);
SELECT Nome_Empregado FROM Empregados, Férias WHERE (Empregados.Cod_Empregado = Férias.Cód_Empregado) AND (Cod_Departamento = 307) AND (Ano_Referencia = 2005) AND (Cód_Empregado <> (SELECT Cod_Empregado FROM Férias));
SELECT Nome_Empregado FROM Empregados WHERE (Cod_Departamento = 307) AND (Cód_Empregado NOT IN (SELECT Cod_Empregado FROM Férias WHERE Ano_Referencia = 2005));
{TITLE}
{CONTENT}
{TITLE}
Aguarde, enviando solicitação...