none
Procedure ou VIEW RRS feed

  • Pergunta

  • Bom dia,

    Preciso fazer uma consulta de datas do tipo COUNT

    Por exemplo em uma tabela eu tenho varias datas de logon e por varias pessoas no meu caso eu preciso buscar a quantidade de logon de Hoje, Ontem e Anteontem.

    Alguém consegue me ajudar ?

    Obrigado

    terça-feira, 13 de fevereiro de 2007 12:01

Respostas

  • Olá Leandro, por acaso seria isso? Dá uma olhada no exemplo abaixo:

     

    CREATE PROCEDURE [dbo].[sp_ConsultarPresencaDia]

    @dia int,

    @mes int

    AS

    BEGIN

    Declare @Hoje int,

    @Ontem int,

    @AnteOntem int

    SELECT @Hoje = COUNT(horaLogon)

    FROM HistoricoUsuario

    WHERE DAY(horaLogon) = @dia AND MONTH(horaLogon) = @mes

     

    SELECT @Ontem = COUNT(horaLogon)

    FROM HistoricoUsuario

    WHERE DAY(horaLogon)-1 = @dia-1 AND MONTH(horaLogon) = @mes

    SELECT @AnteOntem = COUNT(horaLogon)

    FROM HistoricoUsuario

    WHERE DAY(horaLogon)-2 = @dia-2 AND MONTH(horaLogon) = @mes

    Select @Hoje,@Ontem,@AnteOntem

    END

     

    Espero ter ajudado

    terça-feira, 13 de fevereiro de 2007 12:39

Todas as Respostas

  • Bom dia Leandro

    Você pode tanto criar uma procedure , view ou uma FUNCTION que é o que considero mais adequado segue abaixo um exemplo:

     

    CREATE FUNCTION FN_RETORNALOGON(@Data_Inicial SmallDateTime,@Data_Final SmallDateTime) RETURNS TABLE
    AS RETURN(SELECT * FROM SUATABELA WHERE CAMPODATA Between @Data_Inicial AND @Data_Final)

     

    Você utiliza da seguinte forma: SELECT * FROM FN_RetornaLogon('01/01/2007','01/02/2007')

     

     

    Espero ter ajudado

    terça-feira, 13 de fevereiro de 2007 12:10
  • eu ja prefico proc neste caso, pois vai gerar planos de execucao. para consulta.

     

    Abs;

    terça-feira, 13 de fevereiro de 2007 12:27
  • Anderson no caso estou fazendo assim assim eu tenho a contagem do dia que for solicitado pela aplicação dai quando a aplicação pedir a contagem do dia 13/02 tabem devo retornar o dia 12/02 e 11/02 será que tem como fazer isso?

    CREATE PROCEDURE [dbo].[sp_ConsultarPresencaDia]

    @dia int,

    @mes int

    AS

    BEGIN

    SELECT COUNT(horaLogon)

    FROM HistoricoUsuario

    WHERE DAY(horaLogon) = @dia AND MONTH(horaLogon) = @mes

    END

     

    Obrigado

    Leandro

    terça-feira, 13 de fevereiro de 2007 12:34
  • Olá Leandro, por acaso seria isso? Dá uma olhada no exemplo abaixo:

     

    CREATE PROCEDURE [dbo].[sp_ConsultarPresencaDia]

    @dia int,

    @mes int

    AS

    BEGIN

    Declare @Hoje int,

    @Ontem int,

    @AnteOntem int

    SELECT @Hoje = COUNT(horaLogon)

    FROM HistoricoUsuario

    WHERE DAY(horaLogon) = @dia AND MONTH(horaLogon) = @mes

     

    SELECT @Ontem = COUNT(horaLogon)

    FROM HistoricoUsuario

    WHERE DAY(horaLogon)-1 = @dia-1 AND MONTH(horaLogon) = @mes

    SELECT @AnteOntem = COUNT(horaLogon)

    FROM HistoricoUsuario

    WHERE DAY(horaLogon)-2 = @dia-2 AND MONTH(horaLogon) = @mes

    Select @Hoje,@Ontem,@AnteOntem

    END

     

    Espero ter ajudado

    terça-feira, 13 de fevereiro de 2007 12:39
  • Obrigado pela ajuda
    terça-feira, 13 de fevereiro de 2007 13:14
  • Disponha

     

     

    Abs e Boa sorte

    terça-feira, 13 de fevereiro de 2007 13:25