Procediments emmagatzemats. Condicionals: IF, CASE

De wikijoan
La revisió el 11:08, 28 març 2022 per Joan (discussió | contribucions) (Es crea la pàgina amb «=Feina per l'alumne= Treballarem amb la base de dades HR (Human Resources) Realitza els següents exercicis: '''1.''' Programar el procediment ''CategoriaSalarial(IN...».)
(dif) ← Versió més antiga | Versió actual (dif) | Versió més nova → (dif)
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

Entrega dins del termini previst


creat per Joan Quintana Compte, març 2022