Luthien 0 Denunciar post Postado Fevereiro 24, 2016 Olá, Estou tentando criar uma função que insira os dados em um recibo de estacionamento a partir do id de um comprovante, e dentro da função preciso de uma variável. Nunca fiz função nem usei variável, por isso pode ter coisa bem nd a ver no código. Está dando erro de sintaxe: delimiter $ create procedure InsereDadosRecibo(idcomp int) begin (select * from Comprovante where Comprovante.IDComprovante = idcomp) as selecao; @HoraSaida:= selecao.HoraEntrada + floor(2000 + (rand()*(20000-2000))); insert into estacionamento.Recibo values(null,selecao.DataEntrada, selecao.HoraEntrada, @HoraSaida ,selecao.IDCategoria,selecao.PlacaCarro, (@HoraSaida - selecao.HoraEntrada)); end $ Tabela Comprovante: +---------------+-------------+------+-----+---------+----------------+| Field | Type | Null | Key | Default | Extra |+---------------+-------------+------+-----+---------+----------------+| IDComprovante | int(11) | NO | PRI | NULL | auto_increment || IDCategoria | int(11) | NO | MUL | NULL | || PlacaCarro | varchar(45) | NO | MUL | NULL | || DataEntrada | date | NO | | NULL | || HoraEntrada | time | NO | | NULL | |+---------------+-------------+------+-----+---------+----------------+ Tabela Recibo: +-------------+-------------+------+-----+---------+----------------+| Field | Type | Null | Key | Default | Extra |+-------------+-------------+------+-----+---------+----------------+| IDRecibo | int(11) | NO | PRI | NULL | auto_increment || DataEntrada | date | NO | | NULL | || HoraEntrada | time | NO | | NULL | || HoraSaida | time | NO | | NULL | || IDCategoria | int(11) | NO | MUL | NULL | || PlacaCarro | varchar(45) | NO | MUL | NULL | || ValorPago | double | NO | | NULL | | Estou com dúvida também em como calcular o valor pago. Cada categoria tem uma taxa que é cobrada a cada 30 min, não sei como fazer esse calculo no mysql. Compartilhar este post Link para o post Compartilhar em outros sites
Luthien 0 Denunciar post Postado Fevereiro 24, 2016 aah consegui haha, só n sei msm como calculo o valor Pago: delimiter $ create procedure InsereDadosRecibo(idcomp int) begin select Comprovante.DataEntrada as DataEntrada, Comprovante.HoraEntrada as HoraEntrada, Comprovante.IDCategoria as IDCategoria, Comprovante.PlacaCarro as PlacaCarro, Comprovante.HoraEntrada + floor(2000 + (rand()*(20000-2000))) as HoraSaida from Comprovante where Comprovante.IDComprovante = idcomp; insert into estacionamento.Recibo values(null,DataEntrada, seHoraEntrada, HoraSaida ,IDCategoria,PlacaCarro, HoraSaida); end $ Compartilhar este post Link para o post Compartilhar em outros sites