Ir para conteúdo
  • 0

Controle de Vidas - Pneu - Setando dados por evento


Mateus_Silva

Pergunta

  • Alunos

 

Olá, bom dia!

Tudo bem?

Estou com uma solicitação da área de negócio de realizar o controle de pneus por "Km Rodado por Vida", nisso teria que gerar uma coluna condicional no banco tratando no histórico em que vida o pneu se encontra na "data do evento", tipo ele começar com a vida "1" e quando chegar no evento "10" ele muda para vida "2" e assim incrementando conforme tendo esse evento.

Então a forma que pensei para isso seria gerar uma coluna condicional que começaria com "1" e mudaria conforme o evento "10"(Reforma) para incrementar mais uma vida.

Segue exemplo que queria realizar em SQL coluna "VIDA":

image.png.472381b5163f4a6b5a9cf830f1ded2c9.png

Ex: Segue uma imagem do sistema gerando a informação de KM Rodado por Vida

image.png.91d741befc685c0831411bc54a020d8b.png

 

 

No Banco de dados ele só tem uma de tabela de pneu que informa somente em que vida está o Pneu no momento atual e para chegar nisso teria que aplicar uma regra

image.png.ced20e69b135974bf98133f95e36d0d7.png

Tabela: Histpneu (Com movimentações na Histórico de Pneus)

 

image.png.9e1a8e3b0e6a9b00e2bc972fcb39674f.png

Tabela: Pneu

 

Eu utilizei a função LAG para chegar na condição, mas não obtive sucesso para esse resultado agora desejado

https://datatuning.com.br/blog/t-sql-tip-02-funcao-lead-e-lag/

 

Att,

Mateus Silva.

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0
  • Alunos

Olá, bom dia!

Resolvido com um código de python a coluna "Vida":

 

df = df.sort_values(['CD_PNEU', 'DH_EVENTO'])
df = df.reset_index()

df['inicioPneu'] = df.groupby('CD_PNEU').cumcount()
df['inicioPneu'] = df['inicioPneu'].map(lambda x: 1 if x==0 else np.nan)

df['Vida'] = df[df['CD_EVENTO']==10].groupby('CD_PNEU').cumcount() + 2

df['Vida'] = df['Vida'].combine_first(df['inicioPneu'])

df['Vida'] = df['Vida'].ffill()
df = df.drop(columns='inicioPneu')

Att,

 

  • Like 1
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...