кодесурса

Таблица обновления PostgreSQL: Увеличьте зарплату сотрудников в отделах 40, 90 и 110 в соответствии с правилами компании в базе данных HR

script1adsense2code
script1adsense3code

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 программирования


script1adsense4code
script1adsense5code
disqus2code
script1adsense6code
script1adsense7code
script1adsense8code
buysellads2code