[DÚVIDA] PLSQL INCREMENTAL

Dúvidas, dicas e truques de PL/SQL. Aqui também vão assuntos relacionados a pacotes, triggers, funções, Java-Stored Procedures, etc
Responder
plsql.begin
Rank: Estagiário Júnior
Rank: Estagiário Júnior
Mensagens: 2
Registrado em: Sáb, 05 Mar 2011 4:15 pm
Localização: RIO DE JANEIRO
PLSQL

Prezados, boa tarde.

Estou iniciando na vida de plsql e estou com uma dúvida e espero que possam ajudar-me.
Tenho um controle de sistema referente a atendimento dentro de uma oficina.
Cada vez que um carro passa por uma equipe é criado dinamicamente uma coluna na minha tabela de atendimento. Hoje preciso mudar o sistema para que funcione da seguinte maneira
Cada passagem de um determinado veículo por uma equipe da oficina deve gerar um registro novo na tabela de atendimento, quando o carro passar novamente por uma equipe anterior, os campos “passagem” e “Tempo” devem ser incrementados.

Exemplo:
Fluxo carro1: Suspensão – 30 minutos -> lanternagem – 120 minutos -> mecânica – 80 minutos -> suspensão 50 minutos -> encerrou atendimento.
Neste caso, este carro terá 4 registros na tabela atendimento com as seguintes informações nos campos novos:
CARRO PLACA PASSAGEM EQUIPE TEMPO
FOCUS LBQ1234 2 SUSPENSAO 80
FOCUS LBQ1234 1 LANTERNAGEM 120
FOCUS LBQ1234 1 MECANICA 80

Eu preciso criar uma procedure que faça o cenário acima.
Desde já agradeço a ajuda de todos!
gfkauer
Rank: DBA Sênior
Rank: DBA Sênior
Mensagens: 389
Registrado em: Ter, 27 Jul 2010 1:34 pm
Localização: Sapiranga - RS
Contato:
Quem falou que programar era fácil??

Quanto mais dificil for a implementação mais valorizado seu trabalho será!

Acessem: www.gfkauer.com.br

Selecionar tudo

update tabela t
   set t.passagem = nvl(t.passagem, 0) + 1, t.tempo = nvl(t.tempo, 0) + NOVO_TEMPO
 where t.chave = t.chave
If sql%notfound Then
  /*seu procedimento de insert aqui*/
end if;
seria algo assim?
plsql.begin
Rank: Estagiário Júnior
Rank: Estagiário Júnior
Mensagens: 2
Registrado em: Sáb, 05 Mar 2011 4:15 pm
Localização: RIO DE JANEIRO
PLSQL

Amigo, boa tarde.

Talvez eu não tenha me explicado direito.

Detalhando um pouco mais:
1 - o campo PASSAGEM começa com valor 0 e será incrementado a cada novo registro em nova equipe, no caso informado forma 4 registros que na verdade são 3 pois a equipe SUSPENSAO teve 2 passagens.
2 - O campo EQUIPE deve fornecer todas as EQUIPES por onde o carro passo
que neste caso foram, SUSPENSÃO, LANTERNAGEM E PINTURA.
3 - O campo TEMPO deve informar o somatório do tempo gasto por cada equipe no atendimento do carro, caso a equipe tenha mais de uma passagem o campo tempo deve somar todos os tempos.

acredito que o nvl é necessário pois os valores não podem ser diferentes de ZERO. Agora eu tenho que saber quantas vezes o carro X passou pelas equipe e quanto tempo ele ficou nas mesmas, ou seja, somo as passagens por cada equipe e os tempos. Sendo que, cada equipe deve ter o seu total de tempo de atendimento.

Obrigado
gfkauer
Rank: DBA Sênior
Rank: DBA Sênior
Mensagens: 389
Registrado em: Ter, 27 Jul 2010 1:34 pm
Localização: Sapiranga - RS
Contato:
Quem falou que programar era fácil??

Quanto mais dificil for a implementação mais valorizado seu trabalho será!

Acessem: www.gfkauer.com.br

Você chegou a simular a rotina que eu sugeri?

Num modelo que implementei aqui baseado nas informações que você passou eu obtive o que me aparentou ser o resultado que você busca.
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 2 visitantes