Usuário com melhor resposta
Select simples

Pergunta
-
Olá pessoal, vejam meu cenário e me passem ae por favor qual a melhor maneira de efetuar as seguintes consultas:
minhas tabelas:
TB_FUNCIONARIO
[MATRICULA] [int]
[NM_FUNCIONARIO] [varchar] (40)
[SEXO] [varchar]
[CD_SETOR] [int]
TB_SOLICITACAO
[CD_SOLICITACAO] [int] ,
[MATRICULA] [int] ,
[CD_TECNICO] [int] ,
[DATA_ABERTURA] [datetime] ,
[DESCRICAO] [varchar] (50) ,
[DATA_FECHAMENTO] [datetime] ,
[DESCRICAO_FECHAMENTO] [varchar] (50)
tenho essas duas tabelas, elas estão relacionadas de maneira correta:
quero que me mostre todos os funcionarios que tiveram solicitação no dia 10/10/2008 mas não tiveram no dia 20/09/2008(data_abertura)
flw... pessoal desde ja agradeço...
Respostas
-
Olá Jean,
Seria muito bom que você separasse as dúvidas em posts diferentes (eu apaguei a segunda parte). Isso é necessário para evitar posts que não acabam nunca. Quando colocam muitas dúvidas no mesmo post, a resposta pode surgir para a primeira, mas não para a segunda (ou o contrário) e depois podem comentar a resposta da primeira, etc.
No caso da dúvida do dia 10 e 29, tente o seguinte:
Code SnippetSELECT
* FROM TB_FUNCIONARIO AS FWHERE
EXISTS
(SELECT * FROM TB_SOLICITACAO AS S WHERE F.MATRICULA = S.MATRICULA AND DATA_ABERTURA = '20081010') ANDNOT
EXISTS (SELECT * FROM TB_SOLICITACAO AS S WHERE F.MATRICULA = S.MATRICULA AND DATA_ABERTURA = '20080920')Poste novamente a dúvida do dia 10 e dia 15 e informe no novo post se você utiliza o SQL Server 2005.
[ ]s,
Gustavo
Todas as Respostas
-
Olá Jean,
Seria muito bom que você separasse as dúvidas em posts diferentes (eu apaguei a segunda parte). Isso é necessário para evitar posts que não acabam nunca. Quando colocam muitas dúvidas no mesmo post, a resposta pode surgir para a primeira, mas não para a segunda (ou o contrário) e depois podem comentar a resposta da primeira, etc.
No caso da dúvida do dia 10 e 29, tente o seguinte:
Code SnippetSELECT
* FROM TB_FUNCIONARIO AS FWHERE
EXISTS
(SELECT * FROM TB_SOLICITACAO AS S WHERE F.MATRICULA = S.MATRICULA AND DATA_ABERTURA = '20081010') ANDNOT
EXISTS (SELECT * FROM TB_SOLICITACAO AS S WHERE F.MATRICULA = S.MATRICULA AND DATA_ABERTURA = '20080920')Poste novamente a dúvida do dia 10 e dia 15 e informe no novo post se você utiliza o SQL Server 2005.
[ ]s,
Gustavo
-