Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

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

  • Conteúdo Similar

    • Por mamotinho
      Olá, estou a um tempo tentando acrescentar um codigo na coluna do SQL na qual seria VARBINARY

      A Coluna atual contém o seguinte codigo binary:
      Código (01)
      0x020009004C0101434D0101465C0101485D0101499801014B8401014E8501014F86010150D00009017A0014247D0014257B0014261600090201000903F9001420FA0014229F000923F8001427DF000128730014297600142A7E00142BFB00142CA3010147E000142DE100142EA40101443900120424001405C40101457400142F770014307F0001317C001232E6000421780001332C010A522F0108533A010354380103553001085637010357A5010166A6010167  
      No codigo acima eu gostaria de acrescentar o seguinte codigo:
      Código (02)
      0xCC010120CD010121CE010122CF010123
      no caso eu quero criar uma procedure que ao executar a função ele adicione o codigo 02 no código 01. no caso o codigo ficaria desta forma:

      0x020009004C0101434D0101465C0101485D0101499801014B8401014E8501014F86010150D00009017A0014247D0014257B0014261600090201000903F9001420FA0014229F000923F8001427DF000128730014297600142A7E00142BFB00142CA3010147E000142DE100142EA40101443900120424001405C40101457400142F770014307F0001317C001232E6000421780001332C010A522F0108533A010354380103553001085637010357A5010166A6010167CC010120CD010121CE010122CF010123



      Ficarei imensamente grato se alguém conseguir me ajudar, o orientar. sou iniciante nessa areá ainda.
    • Por tanaka_
      Gostaria de saber se é possível listar todos os objetos criados no banco de dados por usuário especifico.
      Não é para listar os "dbo" e sim o usuário logado que criou o objeto.
       
      Usuário logado:
      select SYSTEM_USER
       
      Todos os objetos criados:
      select * from sys.all_objects
    • Por tanaka_
      Gostaria de saber se é possível listar todos os objetos criados no banco de dados por usuário especifico.
      Não é para listar os "dbo" e sim o usuário logado que criou o objeto.
       
      Usuário logado:
      select SYSTEM_USER
       
      Todos os objetos criados:
      select * from sys.all_objects
    • Por carlos melo
      Boa noite, trabalho com Delphi e estou tendo dificuldade em fazer conexão com meu servidor que esta na argentina, uso o firedac para fazer a conexão com o banco, so que o comando que estou utilizando esta dando erro e não sei se estou configurando certo a minha query.
       
      Ja criei os linked server e tambem não resolveu......
       
       uso um select dentro do delphi dessa maneira : 
      DELPHI
      FDQuery e dentro uso esse select
      Select * from [192.168.XX.XXX].banco.dbo.tabela direcionando para o meu servidor que esta na argentina sendo 192.168.xx.xxx o ip do servidor de la e o nome do banco é servicos e a tabela ordens.
       
      Se alguem conhece ou ja fez esse tipo de conexão , estou precisando dessa grande ajuda...
       
      obrigado
    • Por Robson Barros da Rocha
      Bom dia povo. Tenho um problema, e não uma dúvida. Eu executo no SQL Server esta query para agrupar os resultados cujo tenha o código do comprovante repetido:
      SELECT * FROM SHOP_Pedidos WHERE show='1' GROUP BY comprovante As colunas são:
      ID = Se preenche automaticamente
      comprovante = Recebe o código do comprovante
      productName = Nome do produto
      productValue = Valor do produto
      dateSent = Data que o produto foi enviado
      show = Enviado (1) e não enviado (0)
       
      A query que mostrei acima, não retorna dados porque aparece esse erro: "Column 'SHOP_Pedidos.id' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause." Certo, então aí que está o problema. Vendo o erro, eu troquei a * pela coluna comprovante, e resultou, mas a consulta só retorna a coluna comprovante (por conta do SELECT estar especificando somente ele. 
       
      A dúvida é: Tem como recuperar todos as colunas, assim como mysql?
×

Informação importante

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