Advertisement
Guest User

Untitled

a guest
Mar 11th, 2016
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. 1)SELECT DECODE(GROUPING(department),0,TO_CHAR(department),'Всего: ') "Отдел", COUNT(*)
  2. FROM emp_v11 e
  3. WHERE
  4. code IN (
  5.   SELECT code FROM emp_v11 ee WHERE ee.parent_id != e.code
  6. )
  7. GROUP BY ROLLUP(department);
  8.  
  9.  
  10. 2)CREATE TABLE D_V(
  11. Dat DATE PRIMARY KEY,
  12. Val NUMBER
  13. );
  14. INSERT INTO D_V (Dat, Val) VALUES ('01-08-08', '232');
  15. INSERT INTO D_V (Dat, Val) VALUES ('02-08-08', '');
  16. INSERT INTO D_V (Dat, Val) VALUES ('10-08-08', '182');
  17. INSERT INTO D_V (Dat, Val) VALUES ('11-08-08', '');
  18. INSERT INTO D_V (Dat, Val) VALUES ('21-08-08', '240');
  19. INSERT INTO D_V (Dat, Val) VALUES ('22-08-08', '');
  20. SELECT Dat, COALESCE(Val, LAG(Val) OVER (ORDER BY Dat)) MAX_VAL FROM D_V;  
  21.  
  22. 3) SELECT DECODE(
  23.                     GROUPING(s1.code), 0,
  24.                     (DECODE(GROUPING(s2.code), 0, (SELECT last_name FROM emp_v11 WHERE code = s1.code)  ||' '|| (SELECT first_name FROM emp_v11 WHERE code = s1.code) ||' '|| (SELECT patronymic FROM emp_v11 WHERE code = s1.code),
  25. ' '||(SELECT last_name FROM emp_v11 WHERE code = s1.code) ||' '|| (SELECT first_name FROM emp_v11 WHERE code = s1.code) ||' '|| (SELECT patronymic FROM emp_v11 WHERE code = s1.code) ||' Итого:'))
  26.                     , 'Общий итог:') "Руководитель",
  27.                     DECODE(GROUPING(s1.code), 0, (DECODE (GROUPING(s2.code), 0, (SELECT department FROM emp_v11 WHERE code = s2.code),
  28.  (SELECT department  FROM emp_v11 WHERE code = s1.code))),'Итого2:') "Должность", COUNT(*) "Кол-во сотрудинков", SUM(s2.salary) "Сумма"
  29.   FROM (SELECT first_name, last_name, patronymic, code, department FROM emp_v11) s1,
  30.   (SELECT code, parent_id, salary FROM emp_v11) s2  
  31.   WHERE s1.code = s2.parent_id  GROUP BY rollup(s1.code, s2.code);
  32.  
  33. 4)   SELECT s.code_emp, lname, s.sal, s.code_dep
  34. FROM (SELECT DISTINCT MIN(salary) over(PARTITION BY code_dep) sal, staff.code_emp, lname, staff.code_dep, salary FROM staff) s
  35.   WHERE s.salary = s.sal  AND code_dep IN(SELECT code_dep FROM departmentlist) ORDER BY s.lname;
  36. SELECT staff.code_emp, lname, s.sal, staff.code_dep FROM staff, departmentlist, (SELECT DISTINCT MIN(salary) over(PARTITION BY code_dep) sal FROM staff) s
  37.   WHERE salary = s.sal AND staff.code_dep = departmentlist.code_dep ORDER BY staff.lname;
  38.  
  39. 5) SELECT Surname_sot, Oklad, ROUND(RATIO_TO_REPORT(Oklad) over() *100, 2) percent FROM Spisok_sot;
  40.  
  41. 6) SELECT Surname_sot FROM (SELECT Surname_sot, DENSE_RANK() OVER (ORDER BY s1.rang) n FROM(SELECT Surname_sot, DENSE_RANK() over(ORDER BY Surname_sot DESC) rang FROM Spisok_sot) s1
  42. WHERE s1.rang<=3) s2 WHERE s2.n = 1;
  43.  
  44. 7)SELECT Surname_sot FROM (SELECT Surname_sot, COUNT (RANG) OVER (ORDER BY RANG RANGE UNBOUNDED PRECEDING) Kol FROM (SELECT Surname_sot, DENSE_RANK() over (ORDER BY Oklad DESC) rang FROM Spisok_sot) s1
  45.    WHERE s1.rang=1 ) s2 WHERE Kol<=3;
  46.  
  47.  
  48. 2)INSERT INTO staff (code_emp, lname, fname, patr, birth, stdate, isfired, salary)
  49. VALUES (20000, 'NIAIEAA','EAAI','IEEIEAAAE?', '28.08,1952','11.01.1980','I', 25000);
  50.  
  51.  INSERT INTO Spisok_sot (Kod_spisok, Surname_sot, Name_sot, Firstname_sot, Data_birth, Data_prin, Kod_d, Kod_ot, Priznak, Oklad) VALUES (20000, 'Соболев', 'Александр', 'Андреевич', '29.01.1970', '05.10.1996','30','52','Н', 30000);
  52. UPDATE Spisok_sot SET Kod_d = 30 WHERE Kod_spisok = 20000;
  53. UPDATE Spisok_sot SET Kod_ot = 29 WHERE Kod_spisok = 20000;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement