adriano_anacleto
(usa Outra)
Enviado em 23/02/2024 - 10:17h
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')