Ir para conteúdo
Fórum Script Brasil
  • 0

Calcular diferença de valores na mesma coluna com valor anterior


Adriano Anacleto

Pergunta

Olá Pessoal,

Estou com um situação nessa consulta, venho pedir auxilio aqui no grupo para tentar resolver,
Nessa imagem apresenta os dados de uma consulta, porem preciso calcular a diferença de dias entre cada situação ou seja, na coluna Dias seria a diferença entre as datas dos campos Data e DtEmissao, agora preciso calcular a diferença entre os dias do Campo Dias, exemplo:
Numero| Dias | Diferenca_dias
    554            7                  null
    554            12  (12-7)     5
    554            23  (23-12)   11
    554           23  (23-23)   0 

    590           8                   Null
    590           9   (9-8)        1

    595           13                 Null 
Obs: para os valores Null poderia repedir os valores da coluna dias
⚠️ Outro detalhe: tentei utilizar a função LAG porem sem sucesso, pois nossa versão do banco é 2005 🫣

SELECT

 D.Numero
 ,D.DtEmissao
 ,D.CodigoSituacao
 ,C.Descricao as Cargo
 ,Data
 ,INS.Descricao as Situação
 ,P.NomeUsual as Responsavel
 ,CASE WHEN ins.Descricao = 'Liberado' THEN
  DATEDIFF(DAY,D.DtMovimento, ISL.Data)
  WHEN ins.Descricao = 'Liberado' THEN
  DATEDIFF(DAY,ISL.Data,ISL.Data)
  ELSE DATEDIFF (day,D.DtEmissao,ISL.Data)
   END as Dias
  ,null as Diferenca_Dias
  --,LAG(ISL.Data,1) OVER (PARTITION BY D.Numero ORDER BY D.Numero, ISL.Data) as Numero_Dias
FROM 
  MotivoContratacaoCandidato MCC
LEFT JOIN RequisicaoCandidato RC
ON RC.OIDMotivoContratacaoCandidato = MCC.OIDMotivoContratacaoCandidato
LEFT JOIN RequisicaoCandidatoMov RCM
ON RC.OIDdocumento = RCM.OIDRequisicaoCandidatoMov
LEFT JOIN Documento D
on D.OIDdocumento = RC.OIDdocumento 
LEFT JOIN Cargo C
ON C.OIDCargo = Rc.oidcargo

LEFT JOIN IndicativoSituacaoLog ISL
on  D.OIDDocumento = ISL.OIDDocumento 
LEFT JOIN IndicativoSituacao INS
on ins.OIDIndicativoSituacao = ISL.OIDIndicativoSituacao
LEFT JOIN Pessoa P
ON P.OIDPessoa = ISL.OIDResponsavel

WHERE YEAR(D.DtEmissao) = 2024 AND D.Numero in ('590','595','554','521')
 

Consulta.jpeg

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...