none
Select simples RRS feed

  • 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...

    terça-feira, 23 de dezembro de 2008 14:03

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 Snippet

    SELECT * FROM TB_FUNCIONARIO AS F

    WHERE

    EXISTS (SELECT * FROM TB_SOLICITACAO AS S WHERE F.MATRICULA = S.MATRICULA AND DATA_ABERTURA = '20081010') AND

    NOT 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

    terça-feira, 23 de dezembro de 2008 14:23

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 Snippet

    SELECT * FROM TB_FUNCIONARIO AS F

    WHERE

    EXISTS (SELECT * FROM TB_SOLICITACAO AS S WHERE F.MATRICULA = S.MATRICULA AND DATA_ABERTURA = '20081010') AND

    NOT 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

    terça-feira, 23 de dezembro de 2008 14:23
  • Ok.... desde já agradeço, irei postar a outra ....

    terça-feira, 23 de dezembro de 2008 14:30