icatalin

lab 3 BD rezolvat

Jan 13th, 2019
142
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 7.70 KB | None | 0 0
  1. --lab 3
  2. --ex1
  3. SELECT emp.last_name, to_char(emp.hire_date, 'MONTH'), to_char(emp.hire_date, 'YYYY')
  4. FROM employees emp
  5. JOIN employees gates ON emp.department_id = gates.department_id
  6. WHERE emp.last_name LIKE ('%a%') AND gates.last_name LIKE ('Gates')
  7. AND emp.last_name NOT LIKE ('Gates');
  8.  
  9. --ex1 v2
  10. SELECT e.last_name, TO_CHAR(e.hire_date,'MON'), TO_CHAR(e.hire_date,'YYYY'), e.department_id, e.hire_date
  11. FROM employees e JOIN employees Gates
  12. ON e.department_id = gates.department_id
  13. WHERE LOWER(e.last_name) LIKE '%a%' AND Gates.last_name = 'Gates'
  14. AND e.employee_id  != Gates.employee_id;
  15.  
  16. --ex1 v2 metoda 2
  17. SELECT e.last_name, TO_CHAR(e.hire_date,'MON'), TO_CHAR(e.hire_date,'YYYY'), e.department_id, e.hire_date
  18. FROM employees e JOIN employees Gates
  19. ON e.department_id = gates.department_id
  20. WHERE instr(LOWER(e.last_name),'a') > 0 AND Gates.last_name = 'Gates'
  21. AND e.employee_id  != Gates.employee_id;
  22.  
  23. --ex2
  24. SELECT DISTINCT emp.employee_id, emp.last_name, dep.department_id, dep.department_name
  25. FROM employees emp JOIN departments dep
  26. ON emp.department_id = dep.department_id
  27. JOIN employees coleg
  28. ON coleg.department_id = emp.department_id
  29. WHERE coleg.last_name LIKE ('%t%')
  30. ORDER BY emp.last_name;
  31.  
  32. --ex3
  33. SELECT last_name, salary, job_title, city, country_name
  34. FROM employees emp JOIN jobs
  35. ON emp.job_id = jobs.job_id
  36. JOIN departments dep
  37. ON emp.department_id = dep.department_id
  38. JOIN locations loc
  39. ON dep.location_id = loc.location_id
  40. JOIN countries cnt
  41. ON loc.country_id = cnt.country_id
  42. WHERE emp.manager_id = (
  43.                         SELECT emp.employee_id
  44.                         FROM employees emp
  45.                         WHERE emp.last_name LIKE ('King') AND emp.manager_id IS NULL
  46.                         )
  47. ORDER BY emp.last_name;
  48.  
  49. --ex4
  50. SELECT dep.department_id, dep.department_name, emp.last_name, job_title, to_char(salary,'$99,999.99')
  51. FROM departments dep JOIN employees emp
  52. ON dep.department_id = emp.department_id
  53. JOIN jobs
  54. ON emp.job_id = jobs.job_id
  55. WHERE LOWER(dep.department_name) LIKE ('%ti%')
  56. ORDER BY department_name, last_name;
  57.  
  58. --ex5
  59. SELECT emp.last_name, emp.department_id, dep.department_name, loc.city, jobs.job_title
  60. FROM employees emp
  61. JOIN departments dep ON emp.department_id = dep.department_id
  62. JOIN locations loc ON dep.location_id = loc.location_id
  63. JOIN jobs ON emp.job_id = jobs.job_id
  64. WHERE dep.location_id = (
  65.                             SELECT dep.location_id
  66.                             FROM departments dep
  67.                             JOIN locations loc
  68.                             ON dep.location_id = loc.location_id
  69.                             WHERE loc.city LIKE ('Oxford')
  70.                         );
  71.                        
  72. --ex6
  73. SELECT employee_id, last_name, salary
  74. FROM employees emp
  75. JOIN jobs ON emp.job_id = jobs.job_id
  76. WHERE salary > (min_salary + max_salary)/2 AND  emp.department_id IN
  77.                                                                 ( SELECT department_id
  78.                                                                  FROM employees
  79.                                                                  WHERE last_name LIKE ('%t')
  80.                                                                  );
  81.                                                                  
  82. --ex7
  83. SELECT emp.last_name, dep.department_name
  84. FROM departments dep
  85. RIGHT OUTER JOIN employees emp ON dep.department_id = emp.department_id;
  86.  
  87. --ex7v2
  88. SELECT
  89.     e.last_name,
  90.     d.department_name
  91. FROM
  92.     employees e
  93.     RIGHT OUTER JOIN departments d ON e.department_id = d.department_id;
  94.  
  95. --ex8
  96. SELECT dep.department_name, emp.last_name
  97. FROM departments dep
  98. LEFT OUTER JOIN employees emp ON dep.department_id = emp.department_id;
  99.  
  100. --ex9
  101. SELECT dep.department_name, emp.last_name
  102. FROM departments dep
  103. FULL OUTER JOIN employees emp ON dep.department_id = emp.department_id;
  104.  
  105. --ex10
  106.  
  107. SELECT department_id, department_name
  108. FROM departments
  109. WHERE LOWER(department_name) LIKE ('%re%') OR department_id IN
  110.                                                             ( SELECT department_id
  111.                                                             FROM employees
  112.                                                             WHERE job_id LIKE ('SA_REP')
  113.                                                             );
  114.  
  115. --ex10 v2
  116. SELECT department_id
  117. FROM departments
  118. WHERE LOWER(department_name) LIKE ('%re%')
  119. UNION
  120. SELECT department_id
  121. FROM employees
  122. WHERE LOWER(job_id) = 'sa_rep';
  123.  
  124. --ex12
  125. SELECT department_id
  126. FROM departments
  127. minus
  128. SELECT department_id
  129. FROM employees;
  130.  
  131. --ex12 v2
  132. SELECT department_id
  133. FROM departments
  134. WHERE manager_id IS NULL;
  135.  
  136. --ex13
  137. SELECT department_id
  138. FROM departments
  139. WHERE LOWER(department_name) LIKE ('%re%')
  140. INTERSECT
  141. SELECT department_id
  142. FROM employees
  143. WHERE LOWER(job_id) = 'hr_rep';
  144.  
  145. --ex13v2
  146. SELECT department_id
  147. FROM departments dep FULL OUTER JOIN employees emp
  148. WHERE dep.department_id;
  149.  
  150. --ex14
  151. SELECT employee_id, job_id, last_name, salary
  152. FROM employees JOIN jobs USING (job_id)
  153. WHERE salary > 3000 OR salary = (min_salary + max_salary)/2;
  154.  
  155. --ex14 v2
  156. SELECT employee_id, job_id, last_name
  157. FROM employees
  158. WHERE salary > 3000
  159. UNION
  160. SELECT employee_id, j.job_id, last_name
  161. FROM employees e
  162. JOIN jobs j ON e.job_id = j.job_id
  163. WHERE salary = (min_salary + max_salary )/2;
  164.  
  165. --ex15
  166. SELECT last_name, hire_date
  167. FROM employees
  168. WHERE hire_date > ( SELECT hire_date
  169.                     FROM employees
  170.                     WHERE last_name = 'Gates' );
  171.                    
  172. --ex16
  173. SELECT last_name, salary
  174. FROM employees
  175. WHERE department_id = ( SELECT department_id
  176.                         FROM employees
  177.                         WHERE last_name LIKE ('Gates')
  178.                         )
  179. AND last_name != 'Gates';
  180.  
  181. --ex17
  182. SELECT last_name, salary
  183. FROM employees
  184. WHERE manager_id = ( SELECT employee_id
  185.                     FROM employees
  186.                     WHERE manager_id IS NULL);
  187.                    
  188. --ex18
  189. SELECT last_name, department_id, salary
  190. FROM employees
  191. WHERE (department_id,salary) IN (SELECT department_id, salary
  192.                                     FROM employees
  193.                                     WHERE commission_pct IS NOT NULL);
  194.                                    
  195.  --ex19  
  196.  -- e gata facuta
  197.  
  198.  --ex20
  199.  SELECT last_name, salary
  200.  FROM employees
  201.  WHERE salary >ALL (SELECT salary
  202.                     FROM employees
  203.                     WHERE LOWER(job_id) LIKE ('%clerk%')
  204.                     )
  205. ORDER BY salary DESC;
  206.  
  207.  --ex21
  208.  SELECT last_name, department_name, salary,emp.manager_id
  209.  FROM employees emp JOIN departments dep ON emp.department_id = dep.department_id
  210.  WHERE emp.commission_pct IS NULL AND emp.manager_id IN (  SELECT manager_id
  211.                                                    FROM employees
  212.                                                    WHERE commission_pct IS NOT NULL);
  213. --ex22
  214. SELECT last_name, department_id, salary, job_id
  215. FROM employees
  216. WHERE (salary,commission_pct) IN (  SELECT salary, commission_pct
  217.                                     FROM employees emp JOIN departments dep
  218.                                     ON emp.department_id = dep.department_id
  219.                                     JOIN locations loc
  220.                                     ON dep.location_id = loc.location_id
  221.                                     WHERE city LIKE ('Oxford')
  222.                                  );
  223.                                  
  224. --ex23
  225. SELECT last_name, department_id, job_id
  226. FROM employees
  227. WHERE department_id IN ( SELECT department_id
  228.                         FROM departments dep JOIN locations loc
  229.                         ON dep.location_id = loc.location_id
  230.                         WHERE loc.city LIKE ('Toronto')
  231.                         );
Advertisement
Add Comment
Please, Sign In to add comment