Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 1)SELECT DECODE(GROUPING(department),0,TO_CHAR(department),'Всего: ') "Отдел", COUNT(*)
- FROM emp_v11 e
- WHERE
- code IN (
- SELECT code FROM emp_v11 ee WHERE ee.parent_id != e.code
- )
- GROUP BY ROLLUP(department);
- 2)CREATE TABLE D_V(
- Dat DATE PRIMARY KEY,
- Val NUMBER
- );
- INSERT INTO D_V (Dat, Val) VALUES ('01-08-08', '232');
- INSERT INTO D_V (Dat, Val) VALUES ('02-08-08', '');
- INSERT INTO D_V (Dat, Val) VALUES ('10-08-08', '182');
- INSERT INTO D_V (Dat, Val) VALUES ('11-08-08', '');
- INSERT INTO D_V (Dat, Val) VALUES ('21-08-08', '240');
- INSERT INTO D_V (Dat, Val) VALUES ('22-08-08', '');
- SELECT Dat, COALESCE(Val, LAG(Val) OVER (ORDER BY Dat)) MAX_VAL FROM D_V;
- 3) SELECT DECODE(
- GROUPING(s1.code), 0,
- (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),
- ' '||(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) ||' Итого:'))
- , 'Общий итог:') "Руководитель",
- DECODE(GROUPING(s1.code), 0, (DECODE (GROUPING(s2.code), 0, (SELECT department FROM emp_v11 WHERE code = s2.code),
- (SELECT department FROM emp_v11 WHERE code = s1.code))),'Итого2:') "Должность", COUNT(*) "Кол-во сотрудинков", SUM(s2.salary) "Сумма"
- FROM (SELECT first_name, last_name, patronymic, code, department FROM emp_v11) s1,
- (SELECT code, parent_id, salary FROM emp_v11) s2
- WHERE s1.code = s2.parent_id GROUP BY rollup(s1.code, s2.code);
- 4) SELECT s.code_emp, lname, s.sal, s.code_dep
- FROM (SELECT DISTINCT MIN(salary) over(PARTITION BY code_dep) sal, staff.code_emp, lname, staff.code_dep, salary FROM staff) s
- WHERE s.salary = s.sal AND code_dep IN(SELECT code_dep FROM departmentlist) ORDER BY s.lname;
- 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
- WHERE salary = s.sal AND staff.code_dep = departmentlist.code_dep ORDER BY staff.lname;
- 5) SELECT Surname_sot, Oklad, ROUND(RATIO_TO_REPORT(Oklad) over() *100, 2) percent FROM Spisok_sot;
- 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
- WHERE s1.rang<=3) s2 WHERE s2.n = 1;
- 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
- WHERE s1.rang=1 ) s2 WHERE Kol<=3;
- 2)INSERT INTO staff (code_emp, lname, fname, patr, birth, stdate, isfired, salary)
- VALUES (20000, 'NIAIEAA','EAAI','IEEIEAAAE?', '28.08,1952','11.01.1980','I', 25000);
- 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);
- UPDATE Spisok_sot SET Kod_d = 30 WHERE Kod_spisok = 20000;
- UPDATE Spisok_sot SET Kod_ot = 29 WHERE Kod_spisok = 20000;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement