SQL стандарт в СУБД MS SQL SERVER, ORACLE, VFP И ACCESS: манипулирование данными. Семенова И.И. - 35 стр.

UptoLike

Составители: 

34
в Oracle:
SELECT Surname, Name, Lastname FROM ADMIN_PAY.Staff WHERE
NOT EXISTS(SELECT * FROM ADMIN_PAY.Pay WHERE Staff.T_number
= Pay.T_number);
51. Вывести список сотрудников, у которых размер зарплаты не
меньше 3000 руб. (рис. 18):
в VFP, MS SQL Server, Access:
SELECT Surname, Name, Lastname FROM Staff WHERE
EXISTS(SELECT * FROM Pay WHERE Staff.T_number = Pay.T_number
AND Sum_pay >=3000)
в Oracle:
SELECT Surname, Name, Lastname FROM ADMIN_PAY.Staff WHERE
EXISTS(SELECT * FROM ADMIN_PAY.Pay WHERE Staff.T_number =
Pay.T_number AND Sum_pay >=3000);
Surname Name Lastname
Иванов Иван Петрович
Васильков Петр Аркадьевич
Рис. 18. Результат запроса
с использованием квантора
существования
Использование функций совместно с подзапросом.
52. Вывести список сотрудников и даты с размерами полученных
зарплат, которые превысили средний размер их же зарплат (рис. 19):
в VFP, MS SQL Server, Access:
SELECT Surname, Name, Lastname, Sum_pay, Pay_Day FROM Staff
INNER JOIN PAY ON Staff.T_number = Pay.T_number WHERE
Pay.Sum_pay>(SELECT AVG(Sum_pay) FROM Pay)
в Oracle:
SELECT Surname, Name, Lastname, Sum_pay, Pay_Day FROM
ADMIN_PAY.Staff INNER JOIN ADMIN_PAY.PAY ON Staff.T_number =
Pay.T_number WHERE Pay.Sum_pay>(SELECT AVG(Sum_pay) FROM
ADMIN_PAY.Pay);
Surname Name Lastname Sum_pay Pay_day
Иванов Иван Петрович 12542.00 01.03.2003
Иванов Иван Петрович 4521.00 01.02.2003
Васильков Петр Аркадьевич 4511.00 01.01.2003
Рис. 19. Результат запроса с подзапросом