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

De wikiserver
Dreceres ràpides: navegació, cerca
(Es crea la pàgina amb «1. Escriu una consulta que mostri el nom, número de departament i salari de qualsevol empleat, que tinguin un número de departament i salari que es corresponguin -els d…».)
 
 
(Hi ha 4 revisions intermèdies del mateix usuari que no es mostren)
Línia 9: Línia 9:
 
       WHERE comm IS NOT NULL);
 
       WHERE comm IS NOT NULL);
 
</pre>   
 
</pre>   
 +
 
2. Mostra el nom, nom del departament i salari, de qualsevol empleat que tingui un salari i comissió que es corresponguin -els dos-, amb el salari i comissió de qualsevol empleat de Dallas.
 
2. Mostra el nom, nom del departament i salari, de qualsevol empleat que tingui un salari i comissió que es corresponguin -els dos-, amb el salari i comissió de qualsevol empleat de Dallas.
  
 +
<pre>
 +
SELECT ename, dname, sal
 +
FROM emp NATURAL JOIN dept
 +
WHERE (sal, nvl(comm,-1)) IN
 +
      (SELECT sal , nvl(comm,-1)
 +
      FROM emp NATURAL JOIN dept
 +
      WHERE loc = 'DALLAS');
 +
</pre> 
 +
<!--
 
<pre>
 
<pre>
 
SELECT ename, dname, sal
 
SELECT ename, dname, sal
Línia 21: Línia 31:
 
       AND loc = 'DALLAS');
 
       AND loc = 'DALLAS');
 
</pre>
 
</pre>
 +
-->
 
3. Fes una consulta per mostrar el nom, data d'alta i salari de tots els empleats que tinguin el mateix salari i comissió que Scott.
 
3. Fes una consulta per mostrar el nom, data d'alta i salari de tots els empleats que tinguin el mateix salari i comissió que Scott.
  
Línia 37: Línia 48:
 
SELECT ename, job, sal
 
SELECT ename, job, sal
 
FROM emp
 
FROM emp
WHERE sal > ALL (SELECT sal
+
WHERE sal > ANY (SELECT sal
 
                 FROM emp
 
                 FROM emp
 
                 WHERE lower(job) = 'clerk')     
 
                 WHERE lower(job) = 'clerk')     
Línia 43: Línia 54:
 
ORDER BY sal DESC;
 
ORDER BY sal DESC;
 
</pre>
 
</pre>
 +
<!---->

Revisió de 11:37, 16 nov 2022

1. Escriu una consulta que mostri el nom, número de departament i salari de qualsevol empleat, que tinguin un número de departament i salari que es corresponguin -els dos- amb el número de departament i salari de qualsevol empleat que tingui comissió.

SELECT ename, deptno, sal
FROM emp
WHERE (deptno, sal) IN
      (SELECT deptno, sal
       FROM emp
       WHERE comm IS NOT NULL);

2. Mostra el nom, nom del departament i salari, de qualsevol empleat que tingui un salari i comissió que es corresponguin -els dos-, amb el salari i comissió de qualsevol empleat de Dallas.

SELECT ename, dname, sal
FROM emp NATURAL JOIN dept
WHERE (sal, nvl(comm,-1)) IN
      (SELECT sal , nvl(comm,-1)
       FROM emp NATURAL JOIN dept
       WHERE loc = 'DALLAS');

3. Fes una consulta per mostrar el nom, data d'alta i salari de tots els empleats que tinguin el mateix salari i comissió que Scott.

SELECT ename, hiredate, sal
FROM emp
WHERE (sal, nvl(comm,-1)) = 
      (SELECT sal , nvl(comm,-1)
       FROM emp
       WHERE upper(ename) = 'SCOTT')
    AND upper(ename) <> 'SCOTT';

4. Fes una consulta per mostrar als empleats que guanyin un salari superior al salari de qualsevol empleat "CLERK". Ordena el resultat pel salari de forma descendent.

SELECT ename, job, sal
FROM emp
WHERE sal > ANY (SELECT sal
                 FROM emp
                 WHERE lower(job) = 'clerk')    
    AND lower(job) <> 'clerk'
ORDER BY sal DESC;