You are on page 1of 3

------------EJERCICIO 20------------

SELECT E.NOMEM, E.SALAR+NVL(E.COMIS, 0), J.NOMEM, J.SALAR+NVL(COMIS, 0)


FROM TEMPLE E JOIN TDEPTO D ON E.NUMDE=D.NUMDE
JOIN TEMPLE J ON D.DIREC=J.NUMEM
WHERE E.SALAR+NVL(E.COMIS, 0) >= J.SALAR+NVL(J.COMIS, 0) AND E.NUMEM <> J.NUMEM;

------------EJERCICIO 21------------
SELECT DISTINCT E.NOMEM, D.NUMDE
FROM TEMPLE E JOIN TDEPTO D ON E.NUMDE=D.NUMDE
WHERE E.NUMEM <> D.DIREC AND D.NUMDE NOT IN(SELECT DISTINCT DEPDE
FROM TDEPTO
WHERE DEPDE IS NOT NULL)
ORDER BY 1;

------------EJERCICIO 22------------
SELECT NUMDE, AVG(SALAR)
FROM TEMPLE
WHERE NUMDE IN (SELECT NUMDE
FROM TEMPLE
WHERE MONTHS_BETWEEN(SYSDATEM FECIN)/12 >=10 AND (SELECT NUMDE
FROM TDEPTO
WHERE NUMCE IN(SELECT NUMCE
FROM TCENTR
WHERE DIRCE LIKE '%ALCALA%') )
AND YEAR (CURRENT DATE - FECIN) >= 10
GROUP BY NUMDE
HAVING AVG(NUMHI) > 1
ORDER BY NUMDE

------------EJERCICIO 23------------
SELECT 'CON COMISION', SYSDATE, TRUNC(AVG(SALAR),2),
TRUNC(AVG(MONTHS_BETWEEN(SYSDATE,FECNA)/12))
FROM TEMPLE
WHERE COMIS IS NOT NULL

UNION

SELECT 'SIN COMISION', SYSDATE, TRUNC(AVG (SALAR)),


TRUNC(AVG(MONTHS_BETWEEN(SYSDATE,FECNA)/12))
FROM TEMPLE
WHERE COMIS IS NULL;

------------EJERCICIO 24------------
SELECT NOMEM, TRUNC(SALAR / NUMHI,2)
FROM TEMPLE
WHERE COMIS IS NULL AND NUMHI > 0

UNION

SELECT NOMEM, SALAR


FROM TEMPLE
WHERE COMIS IS NULL AND NUMHI = 0
ORDER BY 1;

------------EJERCICIO 25------------
SELECT NOMEM, SALAR + COMIS
FROM TEMPLE E, TDEPTO D, TCENTR C
WHERE E.NUMDE = D.NUMDE AND D.NUMCE = C.NUMCE AND DIRCE LIKE '%ATOCHA%' AND SALAR >
(SELECT AVG (SALAR) FROM TEMPLE WHERE NUMDE = E.NUMDE) AND COMIS IS NOT NULL

UNION

SELECT NOMEM, SALAR


FROM TEMPLE E, TDEPTO D, TCENTR C
WHERE E.NUMDE = D.NUMDE AND D.NUMCE = C.NUMCE AND DIRCE LIKE '%ATOCHA%' AND SALAR >
(SELECT AVG(SALAR) FROM TEMPLE WHERE NUMDE = E.NUMDE) AND COMIS IS NULL
ORDER BY 1;

------------EJERCICIO 26------------
SELECT NOMDE, SUM (SALAR) + SUM (COMIS)
FROM TEMPLE E, TDEPTO D
WHERE D.NUMDE = E.NUMDE
GROUP BY D.NUMDE, D.NOMDE
HAVING COUNT (DISTINCT COMIS) > 0

UNION

SELECT NOMDE, SUM (SALAR)


FROM TEMPLE E, TDEPTO D
WHERE D.NUMDE = E.NUMDE
GROUP BY D.NUMDE, D.NOMDE
HAVING COUNT (DISTINCT COMIS) = 0
ORDER BY 1;

------------EJERCICIO 27------------
SELECT D.*, 'SE TRASLADA'
FROM TDEPTO D, TTRASL T
WHERE D.NUMDE = T.NUMDE

UNION

SELECT D.*, 'NO SE TRASLADA'


FROM TDEPTO D
WHERE NOT EXISTS (SELECT *
FROM TTRASL T
WHERE D.NUMDE = T.NUMDE)
ORDER BY 7;

------------EJERCICIO 28------------
SELECT NOMDE, NOMDE, 0
FROM TDEPTO
UNION

SELECT D0.NOMDE, D1.NOMDE, 1


FROM TDEPTO D0, TDEPTO D1
WHERE D0.NUMDE = D1.DEPDE

UNION

SELECT D0.NOMDE, D2.NOMDE, 2


FROM TDEPTO D0, TDEPTO D1, TDEPTO D2
WHERE D0.NUMDE = D1.DEPDE AND D1.NUMDE = D2.DEPDE

UNION

SELECT D0.NOMDE, D3.NOMDE, 3


FROM TDEPTO D0, TDEPTO D1, TDEPTO D2, TDEPTO D3
WHERE D0.NUMDE = D1.DEPDE AND D1.NUMDE = D2.DEPDE AND D2.NUMDE = D3.DEPDE

UNION

SELECT D0.NOMDE, D4.NOMDE, 4


FROM TDEPTO D0, TDEPTO D1, TDEPTO D2, TDEPTO D3, TDEPTO D4
WHERE D0.NUMDE = D1.DEPDE AND D1.NUMDE = D2.DEPDE AND D2.NUMDE = D3.DEPDE AND
D3.NUMDE = D4.DEPDE

ORDER BY 1, 3, 2

You might also like