Язык SQL

Операторы вставки


Оператор вставки может содержать в себе оператор над операторами select, чтобы добавить в таблицу несколько строк. Запрос в этом случае имеет следующую форму:

insert into <таблица> <оператор select>

Рассмотрим процесс создания платежных ведомостей. В конце периода оплаты собираются все карточки учета рабочего времени за этот период и вычисляется количество отработанных часов для каждого работника. Затем почасовая ставка каждого работника умножается на число отработанных часов. Наконец, в таблице PayStatement создается новая сущность для отражения суммы, которую надо выплатить.

Нужно написать оператор select, создающий таблицу с тем же шаблоном, что и таблица PayStatement. Схема таблицы PayStatement выглядит следующим образом:

PayStatement (ssn, hourlyRate, numHours, amountPaid," datePaid)

Оператор select должен задать значения для всех полей в соответствующем порядке. Мы создадим этот оператор поэтапно.

Следующий оператор select будет отбирать все неоплаченные карточки учета рабочего времени (атрибут paid в которых имеет значение false) и вычислять общее количество отработанных часов3:

select TimeCard.ssn, sum((endTime-startTime)24)as hoursWorked from TimeCard where paid=false group by ssn

При вычислении суммы, которую надо выплатить, необходимо использовать поле hourlyRate из таблицы HourlyEmployee. Нужно помнить, что на условиях почасовой оплаты работают лишь некоторые служащие. Только им начисляется оплата по карточкам учета рабочего времени. Можно добавить вычисление выплачиваемых сумм в предыдущий SQL-оператор. Кроме этого, следует включить поля для почасовой ставки и даты оплаты. Для представления дня выполнения оператора используется константа языка SQL today.

Комментарии закрыты