TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

O EXERCÍCIO MULTA

Por:   •  18/6/2017  •  Trabalho acadêmico  •  1.036 Palavras (5 Páginas)  •  617 Visualizações

Página 1 de 5

Exercícios do Módulo I – PLpgSQL - Multas

 

Exercício 01: Neste primeiro exercício, iremos criar uma função em PlpgSQL, para que mediante os parâmetros enviados (CNH e Velocidade Apurada) se possa testar se um motorista deverá receber ou não Multa. O resultado é a inserção (caso tenha multa) de um novo registro na tabela de ex_multa.

 

Conforme as tabelas descritas abaixo, escreva um procedimento que atenda ao solicitado: –O procedimento deve receber dois valores por parâmetro CNH do motorista e velocidadeApurada do veículo por ele conduzido; –O procedimento, caso seja necessário deverá gravar um registro na tabela ex_multa, bem como retornar um texto com a seguinte mensagem:               'O motorista [nome] soma [X] pontos em multas ‘;

 

•O cálculo da pontuação do motorista é efetuado da seguinte forma: – Se a velocidade estiver entre 80.01 e 110 então o motorista deve ser multado em 120,00 e receber 20 pontos –Se a velocidade estiver entre 110.01 e 140 então o motorista deve ser multado em 350 e receber 40 pontos –Se a velocidade estiver acima de 140 então o motorista deve ser multado em 680 e receber 60 pontos •O sistema deve considerar somente 90% da velocidade apurada para o cálculo da multa. OBS1: Após o cálculo o sistema deve incluir a multa na tabela ex_multa (se o contribuinte foi multado)

 

 

Exercício 02: •Escreva um outro procedimento que atualize o campo totalMultas da tabela ex_motorista a partir dos totais apurados para cada motorista autuado na tabela ex_multa. •OBS1: motorista sem multa deverão possuir valor 0.00 no campo total multa; •OBS2:cuidado para não duplicar valores na coluna totalMultas para os casos em que a rotina for disparada mais de uma vez

RESPOSTA:

--Quastao A

create or replace function GeraMulta (pCNH char(5), velocidadeApurada decimal(5,2))

returns varchar(50) as $$

declare

        _motorista                 record;

        _VelCalc                   decimal(5,2)         := 0.00;

        _pontos                        integer         := 0;

        _multa                        decimal(5,2)         := 0.00;

        _TemMulta                boolean;

begin

        

        select * into _motorista from ex_motorista where cnh = pCNH;

        

        _VelCalc := velocidadeApurada * 0.9;

        

        _TemMulta := false;

        

        if _VelCalc >= 80.01 and _VelCalc <= 110 then

                _TemMulta := true;

                _pontos   := 20;

                _multa    := 120.00;

        end if;

        if _VelCalc >= 110.01 and _VelCalc <= 140 then

                _TemMulta := true;

                _pontos   := 40;

                _multa    := 350.00;

        end if;

        if _VelCalc >= 140.01 then

                _TemMulta := true;

                _pontos   := 60;

                _multa    := 680.00;

        end if;        

        

        if _TemMulta then

            insert into ex_multa

...

Baixar como (para membros premium)  txt (3.9 Kb)   pdf (38.5 Kb)   docx (11.7 Kb)  
Continuar por mais 4 páginas »
Disponível apenas no TrabalhosGratuitos.com