Ir para conteúdo
  • 0

Controle de Vidas - Pneu - Setando dados por evento


Mateus_Silva

Pergunta

  • Membros

 

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
  • Membros

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,

 

  • Gostei 1
Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...