Ir para conteúdo
newallan

Preciso identificar o dia em que não houve registro no banco

Recommended Posts

Bom dia,

 

Pessoal estou com uma atividade para identificar a ausência de batida de ponto dos empregados, no exemplo abaixo o empregado não bateu o ponto no dia 4, é possível fazer uma consulta pra identificar o dia da ausência?

 

MAT      |    DATA

009042    2018-08-01 07:50:00.000
009042    2018-08-01 14:00:00.000
009042    2018-08-02 07:50:00.000
009042    2018-08-02 14:05:00.000 <<<
009042    2018-08-03 07:51:00.000 <<<
009042    2018-08-03 14:02:00.000
009042    2018-08-05 07:50:00.000
009042    2018-08-05 14:03:00.000
009042    2018-08-06 07:52:00.000
009042    2018-08-06 14:02:00.000

Compartilhar este post


Link para o post
Compartilhar em outros sites

Meio vago pois falta o modelo de dados , dias esperados x realizados.

Todavia peswuisa por NOT EXISTS , pode te ajudar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Uma outra maneira de você pegar as faltas do mês corrente seria:

 

SELECT x1.number
  FROM [dbo].[Ponto] p1
RIGHT JOIN
--retorna os dias do mês corrente
 (SELECT
(CAST(CAST(YEAR(GETDATE()) AS VARCHAR) + '-' + CAST(MONTH(GETDATE()) AS VARCHAR) + '-01' AS DATETIME) + Number) number
FROM master..spt_values
WHERE type = 'P'
AND
(CAST(CAST(YEAR(GETDATE()) AS VARCHAR) + '-' + CAST(MONTH(GETDATE()) AS VARCHAR) + '-01' AS DATETIME) + Number )
<
DATEADD(mm,1,CAST(CAST(YEAR(GETDATE()) AS VARCHAR) + '-' + CAST(MONTH(GETDATE()) AS VARCHAR) + '-01' AS DATETIME) )) X1 ON CAST(CAST(X1.number AS DATETIME) AS DATE) = CAST(CAST(p1.[DATA] AS date) AS DATETIME)
where p1.[DATA] is null --pega somente os que não estão na tabela ponto
and CAST(X1.[number] as datetime) <= CAST(GETDATE() AS DATETIME) --pega somente as datas anteriores ou iguais a data atual

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por Robson Freitas
      Tenho uma tabela de cadastro do SQL Server, tenho uma coluna que apresenta o status desse cadastro ('A','I','S','C').
       
      Criei um campo com nome Update_data, que receberá um datatime toda vez que o cliente alterar o status do cadastro. Isso também vale para um insert.
       
      Estou com dúvidas, pois nunca criei uma Trigger em sql server.
       
      Ex: da minha tabela
       ID | Processo | status | Update_data
        1 | A33      | A      | null
      2   | A34      | I      | null
      3    | A55      |     A | null
       
      Não consegui avançar no seguinte exemplo abaixo trigger: 
      CREATE TRIGGER atualizaData
      ON cadastro
      AFTER INSERT,UPDATE
      AS
      IF INSERT OR UPDATE(status)
      BEGIN
      UPDATE cadastro SET Update_data = GETDATE()
      WHERE id = id_que_foi_modifica/inserida
      END
       
      Ao final, será atualizado com a data atual somente se houver modificação ou inserção no campo da situação.
    • Por flaviocarvalho
      Olá, 
      Preciso de ajuda para criar um sql q delete registro com mais de 10 dias de sua criação No BD SqlServer.
      Obs: Os 10 primeiros dias precisam permanecer na tabela.
       
       
    • Por Fábão Ramos
      Pessoal estou com um probleminha esta dando null mas se repararem no codigo Var_dump anterior esta dando o caminho correto so quero que ele leia o arquivos pois o restante ja testei e esta ok so nao consigo fazer ler este caminho.
       
      $DataLog = date("m-d");
      $montando = "C:\Server\PK_LOG\(PVP)";
      $montando .= "$DataLog";
      $montando .= ".log";
      //var_dump($montando);

      $arquivo = $_FILES['$montando'];
      //var_dump($arquivo);
      $arquivo_tmp = $_FILES['$montando']['tmp_name'];
      var_dump($arquivo_tmp);
    • Por Fábão Ramos
      Olá pessoal como todas as outras duvidas esta não seria a mais louca que eu ja fiz :).
       
      eu tenho um site e nele coloquei um link dentro de um iframe buscando um php dentro do meu server neste php existe um select em repetição 
      while(odbc_fetch_row que esta funcionando perfeitamente mas aew vem o problema preciso que exiba varios e varios resultados e como ela esta agregada a um iframe tenho um campo limitado 
       
      bom resumindo preciso que depois de uma certa qtd de repetições crie uma seta para que continue a carregar os resultados e nao criar uma barra de rolagem no meio do site para visualizar o resultado
       
      se alguem tiver uma ideia de como posso fazer estou por aki pq eu não faço ideia de como continuar.
    • Por msantino
      Boa tarde, estou com um problema, pois estamos migrando alguns sistemas internos para um novo servidor, mas quando executo uma consulta o sistema mostra um erro "no RDBMS driver"... não faço idéia nem por onde devo alterar alguma coisa.. qualquer ajuda ou informação é bem vinda. A linguagem utilizada é o php, banco SQL Server.
      Grato.
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.