Procediments emmagatzemats. Condicionals: IF, CASE

De wikijoan
Salta a la navegació Salta a la cerca

Feina per l'alumne

Treballarem amb la base de dades HR (Human Resources)

Realitza els següents exercicis:

1. Programar el procediment CategoriaSalarial(IN vlast_name, OUT vcategoria), de manera que si un empleat té un salari superior o igual a la mitjana dels salaris dels empleats, la seva categoria és 'SUPERIOR'. Si el salari és inferior, la seva categoria és 'INFERIOR'. Prova-ho amb tres empleats.

2. Per trobar els anys que un empleat treballa a l'empresa pots utilitzar aquesta select:

select datediff(now(),hire_date)/365 from employees;

I si ho volem convertir a número enter:

select FLOOR(datediff(now(),hire_date)/365) from employees;

Els valors van entre 22 i 34 anys. Podem considerar que un empleat té antiguitat 'NOU' si la seva antiguitat és inferior o igual a 28 anys. En cas contrari, la seva antiguitat és 'ANTIC'.

Programar el procediment Antiguitat (IN vlast_name, OUT vantiguitat) que doni com a resultat l'antiguitat d'un empleat. Prova-ho amb tres empleats.

3. Sentència CASE. Considerem les següents franges d'antiguitat, i per cada franja d'antiguitat es pot proposar un increment de salari:

  • 20:23 -> increment 10%
  • 24:27 -> increment 12%
  • 28:31 -> increment 14%
  • 32:36 -> increment 16%

Programar el procediment IncrementSalari (IN vlast_name), que doni la següent cadena:

Empleat: xxx (nom) xxx (cognom)
Antiguitat: xxx
Salari: xxx 
Proposta increment: xxx %
Proposta salari: xxx

Per al retorn de carro (línia nova) pots utilitzar el caràcter '\n'.

Prova-ho amb tres empleats.

4. Genera el fitxer informe.txt que inclogui la informació de proposta d'increment de salaris dels empleats 'Popp','Partners', 'Taylor', 'Livingston'

Des de la línia de comandes, pots provar:

mysql -u alumne -pkeiL2lai -D HR -s -e "CALL IncrementSalari('Popp'); CALL IncrementSalari('Partners'); CALL IncrementSalari('Taylor'); CALL IncrementSalari('Livingston');" > informe.txt

Amb el MySQL Workbench serà una mica diferent, ho pots provar també.

Entrega

Entregaràs al Classroom, dins del termini de l'entrega, un document amb l'enunciat, el codi proposat, i el resultat que obtens per la pantalla.


creat per Joan Quintana Compte, març 2022