Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Luthien

Ajuda com função, variável e calcular valor a partir da hora

Recommended Posts

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

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.