Diferència entre revisions de la pàgina «M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T7-1»

De wikiserver
Dreceres ràpides: navegació, cerca
Línia 8: Línia 8:
 
                         WHERE manager_id = e.employee_id);
 
                         WHERE manager_id = e.employee_id);
 
</pre>
 
</pre>
<!--
+
 
 
2.Departaments que no tinguin empleats (NOT EXISTS).
 
2.Departaments que no tinguin empleats (NOT EXISTS).
 
<pre>
 
<pre>
Línia 18: Línia 18:
 
                               WHERE employees.department_id = dept.department_id);
 
                               WHERE employees.department_id = dept.department_id);
 
</pre>
 
</pre>
 +
<!--
 
3.Empleats que no tenen cap empleat al seu càrrec (NOT EXISTS).
 
3.Empleats que no tenen cap empleat al seu càrrec (NOT EXISTS).
 
<pre>
 
<pre>
Línia 65: Línia 66:
 
           FROM job_history;
 
           FROM job_history;
 
</pre>
 
</pre>
<!--
+
 
 
8.Mostreu els identificadors dels empleats i del càrrec dels empleats que actualment tinguin un càrrec que varen ocupar en un altre període en la companyia (INTERSECT).  
 
8.Mostreu els identificadors dels empleats i del càrrec dels empleats que actualment tinguin un càrrec que varen ocupar en un altre període en la companyia (INTERSECT).  
 
<pre>
 
<pre>
Línia 92: Línia 93:
 
           FROM job_history;
 
           FROM job_history;
 
</pre>
 
</pre>
 +
<!--
 
11.Mostreu els identificadors dels departaments per a departaments que no continguin l'ID de càrrec ST_CLERK (MINUS).
 
11.Mostreu els identificadors dels departaments per a departaments que no continguin l'ID de càrrec ST_CLERK (MINUS).
 
<pre>
 
<pre>

Revisió del 20:27, 23 nov 2020

1.Empleats que tinguin algun empleat al seu càrrec (EXISTS).

           SELECT employee_id, first_name
           FROM employees e 
           WHERE EXISTS (
                         SELECT *
                         FROM employees
                         WHERE manager_id = e.employee_id);

2.Departaments que no tinguin empleats (NOT EXISTS).

            SELECT department_name
            FROM departments dept 
            WHERE NOT EXISTS (
                              SELECT *
                              FROM employees
                              WHERE employees.department_id = dept.department_id);

5.Mostreu l'identificador dels empleats i l'identificador de totes les feines que han tingut (UNION).

           SELECT employee_id, job_id
           FROM employees
           UNION
           SELECT employee_id, job_id
           FROM job_history
           ORDER BY employee_id;

6.El mateix que la 5, però considerant també el departament on han desenvolupat les feines (UNION).

           SELECT employee_id, job_id, department_id
           FROM employees
           UNION
           SELECT employee_id, job_id, department_id
           FROM job_history;

7.Mostreu l'identificador dels empleats i l'identificador de totes les feines que han tingut en cada departament (UNION ALL).

      
           SELECT employee_id, job_id
           FROM employees
           UNION ALL
           SELECT employee_id, job_id
           FROM job_history;

8.Mostreu els identificadors dels empleats i del càrrec dels empleats que actualment tinguin un càrrec que varen ocupar en un altre període en la companyia (INTERSECT).

	   SELECT employee_id, job_id
           FROM employees
           INTERSECT
           SELECT employee_id, job_id
           FROM job_history;

9.Igual que la 8, però considerant també el departament on han treballat (INTERSECT).

	   SELECT employee_id, job_id, department_id
           FROM employees
           INTERSECT
           SELECT employee_id, job_id, department_id
           FROM job_history;

10.Mostreu els identificadors dels empleats i del càrrec dels empleats que no han canviat mai de càrrec (MINUS).

	No és pot fer directament amb el MINUS!. El que si podem fer és mostrar només  els identificadors dels empleats.

	   SELECT employee_id
           FROM employees
           MINUS
           SELECT employee_id
           FROM job_history;