Ir para conteúdo
  • 0

Criar um coluna calculada baseada em regras(Controle de Pneu)


Mateus_Silva

Pergunta

  • Alunos

Olá, bom dia!

Tudo bem?

Estou com uma dúvida em gerar uma coluna de tratamento de dado para em uma consulta para o banco de DW, pode me ajudar.

Tenho uma tabela de Pneus onde tenho as seguintes regras para seguir para gerar uma coluna de "KM Rodado":

1 - A coluna de Km Rodado tem que assumir o valor "0" e mudando conforme a diferença do evento anterior com o atual.

2 - Quando o Pneu realiza uma nova "Instalação"(Tipo de movimento que coloca para outro veiculo) ele tem que desconsiderar o KM de Referência da coluna "QT_KM" e assumir "0" com o novo valor e após isso seguir a primeira setando a diferença entre o anterior e o atual.

Segue em anexo imagem no qual explico o que quero gerar e o segundo anexo contém o relatório gerado pelo o sistema.

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Att,

Mateus Silva

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0
  • Alunos

Gente encontrei a solução, segue documentação utilizada e código.

 

https://www.sqlshack.com/sql-lag-function-overview-and-examples/

 

SELECT 
  CD_EMPRESA
, CD_PNEU
, DH_EVENTO
, CD_EVENTO
, QT_KM
, KM_ROD_VEI
, LAG(QT_KM,1) OVER (
        PARTITION BY CD_PNEU
        ORDER BY DH_EVENTO
    ) KM_ANTERIOR
    
, CASE WHEN QT_KM = 0 OR QT_KM = KM_ROD_VEI  THEN 0
  ELSE QT_KM - LAG(QT_KM,1) OVER (
        PARTITION BY CD_PNEU
        ORDER BY DH_EVENTO
    )   END         KM_RODADO

FROM stg.STG_GUB_HISTPNEU
WHERE CD_PNEU = '011920'
ORDER BY DH_EVENTO

 

Link para o comentário
Compartilhar em outros sites

Faça login para comentar

Você vai ser capaz de deixar um comentário após fazer o login



Entrar Agora
×
×
  • Criar Novo...