1
resposta

[Projeto] Resolução desafio 1 e 2

DESAFIA 1:

    SELECT AVG(instrutor.salario) INTO media_salario FROM instrutor WHERE id != NEW.id;


        IF NEW.salario > media_salario THEN
            RETURN NULL;

        ELSE
            INSERT INTO log_instrutores(informacao) VALUES (CONCAT('O instrutor', NEW.nome , 'recebe menos que a media.'));

        END IF;

DESAFIO 2:

    FOR salario IN SELECT instrutor.salario FROM instrutor WHERE id != NEW.id LOOP

            total_instrutores := total_instrutores + 1;

            IF NEW.salario > salario THEN
                recebem_menos := recebem_menos + 1;

            END IF;        
        END LOOP;

        IF salario > 0 THEN
            percentual := recebem_menos::DECIMAL / total_instrutores::DECIMAL * 100;

            IF percentual = 100 THEN
                SELECT MAX(instrutor.salario) INTO NEW.salario FROM instrutor WHERE id != NEW.id;

            END IF;
                INSERT INTO log_instrutores (informacao) 
                VALUES (CONCAT (NEW.nome,' recebe mais do que',percentual,'% da grade de instrutores.'));

        ELSE
            INSERT INTO log_instrutores(informacao)
            VALUES (CONCAT('O instrutor', NEW.nome , 'foi o primeiro cadastrado.'));

        END IF;
        RETURN NEW;
1 resposta

Oi, João! Tudo bem?

Peço desculpas pela demora em te responder.

Parabéns pela resolução do desafio, continue sempre se dedicando e praticando!

Se surgir alguma dúvida, fico à disposição para ajudar.

Abraços!