Таблица обновления PostgreSQL: Увеличьте зарплату сотрудников в отделах 40, 90 и 110 в соответствии с правилами компании в базе данных HR
8. Напишите заявление SQL, чтобы увеличить зарплату сотрудников в отделах 40, 90 и 110 в соответствии с правилами компании, согласно которым заработная плата будет увеличена на 25% для отдела 40, на 15% для отдела 90 и на 10% отдел 110 и остальная часть отдела останутся прежними.
Пример таблицы: сотрудники
Пример решения:
Код:
UPDATE employees SET salary= CASE department_id
WHEN 40 THEN salary+(salary*.25)
WHEN 90 THEN salary+(salary*.15)
WHEN 110 THEN salary+(salary*.10)
ELSE salary
END
WHERE department_id IN (40,50,50,60,70,80,90,110);
Выход:
Смотрите результат перед обновлением. Только обработанные строки были отображены.
postgres = # SELECT * FROM emp, ГДЕ Department_id IN (40,90,110); employee_id | имя_файла | фамилия | электронная почта | номер телефона | hire_date | job_id | зарплата | Commission_pct | manager_id | department_id ------------- + ------------ + ----------- + ---------- + -------------- + ------------ + ------------ + --------- - + ---------------- + ------------ + --------------- 100 | Стивен | Король | SKING | 515.123.4567 | 1987-06-17 | AD_PRES | 24000,00 | 0,00 | 0 | 90 101 | Нина | Коххар | НКОЧХАР | 515.123.4568 | 1987-06-18 | AD_VP | 17000,00 | 0,00 | 100 | 90 102 | Лекс | Де Хаан | LDEHAAN | 515.123.4569 | 1987-06-19 | AD_VP | 17000,00 | 0,00 | 100 | 90 203 | Сьюзен | Маврис | СМАВРИС | 515.123.7777 | 1987-09-28 | HR_REP | 6500,00 | 0,00 | 101 | 40 205 | Шелли | Хиггинс | Сиггинс | 515.123.8080 | 1987-09-30 | AC_MGR | 12000,00 | 0,00 | 101 | 110 206 | Уильям | Гитц | WGIETZ | 515.123.8181 | 1987-10-01 | AC_ACCOUNT | 8300,00 | 0,00 | 205 | 110 (6 рядов)
Смотрите результат. Только обработанные строки были отображены.
postgres=# SELECT * FROM emp WHERE department_id IN (40,90,110);
employee_id | first_name | last_name | email | phone_number | hire_date | job_id | salary | commission_pct | manager_id | department_id
-------------+------------+-----------+----------+--------------+------------+------------+----------+----------------+------------+---------------
100 | Steven | King | SKING | 515.123.4567 | 1987-06-17 | AD_PRES | 27600.00 | 0.00 | 0 | 90
101 | Neena | Kochhar | NKOCHHAR | 515.123.4568 | 1987-06-18 | AD_VP | 19550.00 | 0.00 | 100 | 90
102 | Lex | De Haan | LDEHAAN | 515.123.4569 | 1987-06-19 | AD_VP | 19550.00 | 0.00 | 100 | 90
203 | Susan | Mavris | SMAVRIS | 515.123.7777 | 1987-09-28 | HR_REP | 8125.00 | 0.00 | 101 | 40
205 | Shelley | Higgins | SHIGGINS | 515.123.8080 | 1987-09-30 | AC_MGR | 13200.00 | 0.00 | 101 | 110
206 | William | Gietz | WGIETZ | 515.123.8181 | 1987-10-01 | AC_ACCOUNT | 9130.00 | 0.00 | 205 | 110
(6 rows)
Есть другой способ решить это решение? Внесите свой код (и комментарии) через Disqus.
Предыдущий: Напишите оператор SQL, чтобы изменить идентификатор задания сотрудника с идентификатором 118 на SH_CLERK, если сотрудник принадлежит к отделу с идентификатором 30, а существующий идентификатор задания не начинается с SH.
Далее: Вставка записей PostgreSQL - упражнения, практика, решение
Каков уровень сложности этого упражнения?
Новый контент: Composer: менеджер зависимостей для PHP , R программирования