Guest User

Untitled

a guest
Jun 5th, 2014
192
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 3.81 KB | None | 0 0
  1. -- 1.- Seleccionar los distintos departamentos que xisten en la tabla EMP.
  2.  
  3. SELECT DISTINCT deptno FROM emp;
  4.  
  5.  
  6.  
  7.  
  8.  
  9. -- 2.- Calcular el salario anual a percibir por cada empleado.
  10.  
  11. SELECT eno, sal*52 FROM emp
  12.  
  13.  
  14.  
  15.  
  16.  
  17. -- 3.- Seleccionar aquellos empleados que hayan entrando antes del 1/1/14
  18.  
  19. SELECT eno, hiredate FROM emp WHERE hiredate<'2014-01-01'   --Fechas van entre comillas simples.
  20.  
  21.  
  22.  
  23.  
  24.  
  25. -- 4.- Seleccionar los empleados cuyo salario sea superior al de 'ADAMS'
  26.  
  27. SELECT eno FROM emp WHERE sal>(SELECT sal FROM emp WHERE ename LIKE 'adams' LIMIT 1)
  28.  
  29.  
  30.  
  31.  
  32.  
  33. -- 5.- Encontrar a los empleados cuyo jefe es 'BLAKE'
  34.  
  35.  
  36. SELECT eno FROM emp WHERE mgr = (SELECT eno FROM emp WHERE ename LIKE 'blake')
  37.  
  38.  
  39.  
  40.  
  41.  
  42. -- 6.- Seleccionar aquellos empleados que tienen comision.
  43.  
  44. SELECT eno, ename FROM emp WHERE comm <> 0 OR comm <> NULL
  45.  
  46.  
  47.  
  48.  
  49.  
  50. -- 7.- Seleccionar aquellos empleados que trabajen en el departamento 10 o en el 20.
  51.  
  52. SELECT eno, ename FROM emp WHERE deptno = 20 OR deptno = 10
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59. -- 8.- Seleccionar el nombre de los empleados que ganen más que todos los salesman. No utilizar MAX().
  60.  
  61. SELECT eno FROM emp WHERE sal>(SELECT SUM(sal) FROM emp WHERE job='salesman')
  62.  
  63.  
  64.  
  65.  
  66.  
  67. -- 9.- Seleccionar aquellos empleados cuyo nombre tenga como segunda letra una 'D'.
  68.  
  69. SELECT eno,ename FROM emp WHERE ename LIKE '_D%'
  70.  
  71.  
  72.  
  73.  
  74.  
  75. -- 10.- Calcular el número de emeplados que tienen comisión y a media.
  76.  
  77. SELECT COUNT(*), AVG(comm) FROM emp WHERE comm <> NULL OR comm <> 0
  78.  
  79.  
  80.  
  81.  
  82.  
  83. -- 11.- Encontrar el salario más alto, el más bajo y la diferencia entre ambos.
  84. SELECT MAX(sal) AS maximo, MIN(sal) AS minimo, MAX(sal)-MIN(sal) AS dif FROM emp
  85.  
  86.  
  87.  
  88.  
  89.  
  90.  
  91.  
  92. -- 12.- Hallar el número de trabajos distintos que existen en el departamento 30
  93.  
  94. SELECT DISTINCT COUNT(job) FROM emp WHERE deptno=30
  95.  
  96.  
  97.  
  98.  
  99.  
  100.  
  101. -- 13.- Seleccionar el salario minimo, maximo y medio de los empleados agrupados por empleo,
  102. -- pero solo aquellos cuya media sea superior a 4000
  103.  
  104. SELECT job,  MAX(sal) AS maximo, MIN(sal) AS minimo, avg(sal) AS media FROM emp GROUP BY job HAVING avg(sal)>4000
  105.  
  106.  
  107.  
  108.  
  109.  
  110.  
  111.  
  112. -- 14.- El salario medio y minimo de cada puesto, mostrando en el resultado aquellos cuyo salaro medio este
  113. -- por encima de 1500.
  114.  
  115. SELECT job, avg(sal), MIN(sal) FROM emp GROUP BY job HAVING avg(sal)>1500
  116.  
  117.  
  118.  
  119.  
  120.  
  121.  
  122. -- 15.- Mostrar el nombre del empleado, su trabajo, el nombre y el codigo del departamento en el que trabaja.
  123.  
  124. SELECT ename, job, dept.dname, dept.deptno FROM emp, dept WHERE dept.deptno = emp.deptno
  125.  
  126.  
  127.  
  128.  
  129.  
  130.  
  131. -- 16.- Nombres de los empleados que trabajan en Chicago. Utiliza EXISTS
  132.  
  133. SELECT ename FROM emp WHERE EXISTS(
  134. SELECT deptno FROM dept WHERE loc='Chicago' AND dept.deptno=emp.deptno )
  135.  
  136.  
  137.  
  138.  
  139.  
  140.  
  141.  
  142. -- 17.- Visualiza el número de los departamentos que tengan más de tres empleados asignados.
  143.  
  144. SELECT DISTINCT deptno FROM emp WHERE COUNT(deptno)>  3
  145.  
  146.  
  147.  
  148.  
  149.  
  150.  
  151. -- 18.- Seleccionar el nombe y fecha de ingreso del empleado que lleva más tiempo.
  152.  
  153. SELECT ename, hiredate FROM emp  ORDER BY hiredate ASC LIMIT 1
  154.  
  155.  
  156.  
  157.  
  158.  
  159.  
  160. -- 19-. Encontrar el ename, dname, job y sal de los empleados que trabajen en el mismo departamento que 'Turner'
  161. -- y su salario sea mayor que la media del salario del departamento 10.
  162.  
  163. SELECT ename, dept.dname, job, sal FROM emp, dept
  164.  
  165. WHERE emp.deptno= (SELECT deptno FROM emp WHERE ename= 'Turner')
  166.  
  167. AND sal>(SELECT avg(sal) FROM emp WHERE deptno= 10)
  168. AND emp.deptno=dept.deptno
  169.  
  170.  
  171.  
  172.  
  173.  
  174. -- 20.- Seleccionar el nombre de cada empleado, y el número y nombre de su jefe.
  175.  
  176. SELECT emp.ename, A.ename, A.eno
  177. FROM emp,
  178. (SELECT ename, eno FROM emp) A   -- Hacemos una vista de emp llamada A para usarla como tabla adicional.
  179. WHERE emp.mgr=A.eno
  180.  
  181.  
  182.  
  183.  
  184.  
  185. -- 21.- Seleccionar aquellos empleados que tienen comisión.
  186.  
  187. SELECT eno, ename FROM emp WHERE comm <> 0 OR comm <> NULL
Add Comment
Please, Sign In to add comment