Advertisement
Guest User

Untitled

a guest
Mar 19th, 2019
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  
  2. --1)listar todos los datos de departments
  3.  
  4. select *
  5. from departments;
  6.  
  7. --2)listar nombre apellido y fecha de nacimiento de todas las empleadas
  8.  
  9. select first_name, last_name, birth_date
  10. from employees
  11. where gender= 'F';
  12.  
  13.  
  14. --3)listar los empleados hombres cuya fecha de contratacion es anterior al 1ro de enero de 1990
  15.  
  16. select first_name, last_name
  17. from empleados
  18. where gender='M' and hire_date <= '1999-12-31';
  19.  
  20. --4)listar los nombres de los empleados hombres cuya fecha de nacimiento es anterior a 1955 pero que fueron contratados despues de 1995, y de las mujeres que nacieron despues de 1956 y que fueron contratadas antes de 1990
  21.  
  22. select first_name, last_name
  23. from employees
  24. where gender='M' and birth_date <= '1994-12-31' and hire_date >= '1996-01-01' or gender='F' and birth_date >= '1957-01-01' and hire_date <= '1989-12-31';
  25.  
  26. --5)LISTAR DCUENTO DE IDENTIDAD Y APELLIDO de los empleados de sexo femenino que fueron contratados despues de 1996 o que nacieron antes de 1960
  27.  
  28. select emp_no, last_name, gender
  29. from employees
  30. where gender='F' and (hire_date >= '1997-01-01' or  birth_date <='1959-12-31')
  31.  
  32. --6)listar los nombres de los cargos registrados en la base de datos
  33.  
  34. select title
  35. from titles
  36.  
  37. --7) listar los diferentes cargos listads en la base de datos
  38.  
  39. select distinct title
  40. from titles
  41.  
  42. --8)listar los diferentes apelidos registrados en la base de datos
  43.  
  44. select distinct last_name
  45. from employees
  46.  
  47. --9)obtener el nombre completo de las empleadas de las que no se tiene registrada su fecha de nacimiento
  48.  
  49. select first_name, last_name
  50. from employees
  51. where gender ='F' and birth_date is null
  52.  
  53. --10)obtener un listado con los codigos de departamento que tienen o han tenido asignado un gerente
  54.  
  55. select dept_no
  56. from dept_manager
  57. where emp_no is not null
  58.  
  59. --11)listar el nombre completo de los empleados que fueron contratados en la primera mitad de los años 90's
  60.  
  61. select first_name, last_name
  62. from employees
  63. where hire_date between '1990-07-01' and '1995-01-01'
  64.  
  65. --12)obtener un listado con los codigos de los empleados que tubieron un slario entre 70000 y 90000 dlrs durante la decada de los 90's. solo nos interesa que cada codigo de epleado aparesca solo una vez.
  66.  
  67. select distinct emp_no
  68. from salaries
  69. where from_date between'1990-01-01' and '1999-12-31' and salary between 70000  and 90000
  70.  
  71. --13)listar os diferentes apellidos registrados en la base de datos que inician con la letra z
  72.  
  73. select distinct last_name
  74. from employee
  75. where last_name like 'Z'
  76.  
  77. --14)listar los nombres de las empleadas que contengan una x en su nombre
  78.  
  79. select distinct first_name
  80. from employees
  81. where gender='F' and first_name like '%x%'
  82.  
  83. --15)listar los nombres de los empleados cuyo nobre tiene una h minuscula como segundo caracter
  84.  
  85. select distinct first_name
  86. from employees
  87. where first_name like '_h%'
  88.  
  89. --16)listar el id de los empleados que se vincularon a los deptos d001, d004 o d007 antes de 1986
  90.  
  91. select distinct emp_no
  92. from dept_emp
  93. where dept_no in ('d001','d004','d007') and from_date<'1986-01-01'
  94.  
  95. --17)obtener un listado alfabetico de os nombres de departaento registrados en la bd
  96.  
  97. select det_name emp_no
  98. from departments
  99. order by det_name
  100.  
  101. --18)obtener un listado con apellido nombre y fecha de contratacion de los empleados hombres visualizando primero aquellos eleados cuya fecha de vinculacion es mas reciente; en el caso de que hallan empleados con la misma fecha de vinculacion, se deben presentar alfabeticamente
  102.  
  103. select last_name, first_name, hire_date
  104. from employees
  105. where gender='M'
  106. order by hire_date desc, last_name, first_name
  107.  
  108. --19)listar de acuerdo a la fecha de contratacion los nombres completos de los epleados que han sido gerentes del departamento d004
  109.  
  110. select first_name last_name, hire_date from employees where emp_no in
  111.     (select emp_no
  112.     from dept_manager
  113.     where  dept_no='d004')
  114. order by hire_date
  115.  
  116. --20)listar alfabeticamente el nombre completo de los epleados que hen ocupado el cargo de ingeniero
  117.  
  118. select first_name, last_name from employees where emp_no in
  119.     (select emp_no
  120.     from titles
  121.     where title='Engineer')
  122. order by first_name, last_name
  123.  
  124. --21)realizar consulta 21 buscando algun campo asociado con la palabra ingeniero
  125.  
  126. select first_name, last_name from employees where emp_no in
  127.     (select emp_no
  128.     from titles
  129.     where title like '%Engineer%')
  130. order by first_name, last_name
  131.  
  132. --22)calcular la cantidad de empleados registrados en la BD
  133.  
  134. select count(*)
  135. from employees
  136.  
  137. --23)calcular la cantidad de gerentes que ha tenido el depto d006
  138.  
  139. select distinct count(emp_no)
  140. from dept_manager
  141. where dept_no='d006'
  142.  
  143. --24)calcular el valor total pagado por salarios en 1990
  144.  
  145. select sum(salary)
  146. from salaries
  147. where from_date <= '1990-12-31' and to_date >='1990-01-01'
  148.  
  149. --25)encntrar la fecha de nacimiento del empleado mas joven de la compañia
  150.  
  151. select max(birth_date)
  152. from employees
  153.  
  154. --26)encontrar la fecha de naciiento del empleado de mayor edad que ha sido gerente del depto d004
  155.  
  156. select min(birth_date)
  157. from employees
  158. where emp_no in
  159.     (select emp_no
  160.     from dept_manager
  161.     where dept_no='d004')
  162.  
  163. --27)calcular el valor promedio de los salarios que ha tenido el empleado 11038
  164.  
  165. select round(avg(salary),2)
  166. from salaries
  167. where emp_no ='11038'
  168.  
  169. --28)calcular la cantidad de gerentes que he tenido cada depto
  170.  
  171. select dept_no, count(*)
  172. from dept_manager
  173. group by dept_no
  174. order by dept_no
  175.  
  176. select dept_no, count(*) from dept_manager group by dept_no order by count(*) desc
  177.  
  178. select dept_no as Departamento, count(*) AS Total_gtes
  179. from dept_manager
  180. group by Departamento
  181. order by Total_gtes
  182.  
  183. --29)encontrar la fecha de vinculacion mas reciente de un empleado en cada departamento
  184.  
  185. select dept_no as Departamento, max(from_date) as Fecha
  186. from dept_emp
  187. group by Departamentoc
  188. order by Departamento
  189.  
  190. --30)calcular el valor promedio de los salarios que recibio cada empleado antes de 1987
  191.  
  192. select emp_no as Empleado, round(avg(salary),2) as Promedio
  193. from salaries
  194. where from_date <= '1986-12-31'
  195. group by Empleado
  196. order by Empleado
  197.  
  198. --31)listar en orden descendente la cantidad de cargos que ha tenido cada epleado contratado antes de 1986
  199.  
  200. select emp_no as Empleado, count(title) as Cargos
  201. from titles
  202. where emp_no in
  203.     (select emp_no
  204.     from employees
  205.     where hire_date <= '1985-12-31')
  206. group by Empleado
  207. order by Cargos desc
  208.  
  209. --32)calcular la cantidad de gerentes que ha tenido cada depto siempre y cuando esta cantidad sea superior a 3
  210.  
  211. select dept_no as Depto, count(*)
  212. from dept_manager
  213. group by Depto
  214. having count(*) > 3
  215. order by Depto
  216.  
  217. --33)generar un listado desendente con el valor promedio del salario de cada empleado contratado antes de 1995, sepre y cuando este promedio sea superior a $135000
  218.  
  219. select emp_no as Empleado,
  220. round(avg(salary),2)
  221. from salaries
  222. where emp_no in(
  223.     select emp_no
  224.     from employees
  225.     where hire_date <= '1994-12-31'
  226. )
  227. group by Empleado
  228. having avg(salary) > 135000
  229. order by avg(salary) desc
  230.  
  231. --ej)renombramiento
  232.  
  233. select E.last_name, E.first_name
  234. from employees E
  235. where E.hire_date < '1986-01-01'
  236.  
  237. --ej)producto cartesiano
  238.  
  239. select *
  240. from departments d1, departments d2
  241.  
  242. select *
  243. from departments, dept_manager
  244. where departments.dept_no = dept_manager.dept_no
  245.  
  246. --34)generar un listado con el numero, apellido y nombre de los empleados y el cargo que tienen o han tenido
  247.  
  248. select employees.emp_no, last_name, first_name, title
  249. from employees, titles
  250. where employees.emp_no = titles.emp_no
  251. order by last_name, first_name
  252.  
  253. --35) pregunta 34 aplicando inner join
  254.  
  255. select employees.emp_no, last_name, first_name, title
  256. from employees inner join titles
  257. on employees.emp_no = titles.emp_no
  258. order by last_name, first_name
  259.  
  260. --36)generar una lista alfabetica con el nombre de los deptos y el nobre de sus gerentes junto con la fecha de inicio en el cargo, en orden cronologico por cada depto
  261.  
  262. select dept_name, last_name, first_name, from_date
  263. from departments inner join dept_manager
  264. on departments.dept_no = dept_manager.dept_no
  265. inner join employees
  266. on employees.emp_no = dept_manager.emp_no
  267. order by from_date desc
  268.  
  269. --37)obtener para cada depto (nombre depto) la cantidad de gerentes que ha tenido
  270.  
  271. select dept_name, count(*)
  272. from departments inner join dept_manager
  273. on departments.dept_no = dept_manager.dept_no
  274. group by dept_name
  275.  
  276. otra forma:
  277.  
  278. select dept_name, count(emp_no)
  279. from departments, dept_manager
  280. where departments.dept_no = dept_manager.dept_no
  281. group by dept_name
  282.  
  283. --38)calcular la cantidad de empleados que han tenido el cargo de ingeniero y que ademas han sido gerentes de deptos
  284. select count(*) from dept_manager
  285. where emp_no in
  286.     (select emp_no from titles
  287.     where title ilike '%engineer%')
  288.  
  289. --39)sabiendo que al empleado 11038 se le descuenta el 17% de su salario, calcular el  valor de dicho descuento en cada uno de sus salarios
  290.  
  291. select salary*017
  292. from salaries
  293. where emp_no = '11038'
  294.  
  295. --40)calcular el mismo descuento sobre el salario mas reciente del empleado 11038
  296.  
  297. select salary*017, from_date, to_date
  298. from salaries
  299. where emp_no = '11038' and to_date in
  300.     (select max(to_date)
  301.     from salaries
  302.     where emp_no = '11038')
  303.  
  304. --41)calcular el 17% sobre el total de salarios del empleado
  305.  
  306. select sum(salary)*0.17
  307. from salaries
  308. where emp_no = '11038'
  309.  
  310. --42)incrementar en el 10% el salario actual de los empleados
  311.  
  312. update salaries
  313. set salary = salary*1.1
  314. where to_date = '9999-01-01'
  315.  
  316. --43)cambiar el nombre de dpt de recursos humanos por el de gestion humana
  317.  
  318. update departments
  319. set dept_name = 'Human Management'
  320. where dept_name = 'Human Resources'
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement