|
|||
Задание 2. Создайте запрос, возвращающий имя заказчика и дату размещения заказа. ⇐ ПредыдущаяСтр 2 из 2 Задание 2. Создайте запрос, возвращающий имя заказчика и дату размещения заказа. Указания к выполнению: 1. Выполните следующий код:
SELECT FirstName, LastName, OrderDate FROM Person.Person LEFT JOIN Sales.Customer ON Customer.PersonID = Person.BusinessEntityID LEFT JOIN Sales.SalesOrderHeader ON Customer.CustomerID = SalesOrderHeader.CustomerID
Результат выполнения запроса показан на рис. 7.2.
Рис. 7.2. Результат соединения трех таблиц – клиенты и даты размещения ими заказов
Для лиц, не размещавших заказы, в поле OrderDate содержится значение NULL. При правом соединении (ключевое слово RIGHT JOIN) в результат включаются все записи правой таблицы, независимо от того, есть для них соответствующая строка в левой таблице или нет. Измените рассмотренный запрос так, чтобы он выдавал такие же результаты при использовании правого соединения. Задание 3. С помощью перекрестного соединения можно перечислить все возможные способы поставки товаров в базе данных Northwind (поставлялась с MS SQL Server до появления AdventureWorks2008). Указания к выполнению:
SELECT DISTINCT Suppliers.Country, Orders.ShipCountry FROM Suppliers CROSS JOIN Orders
Самостоятельная работа
1. Вывести фамилию и имя заказчиков из представления vIndividualCustomer, номер (SalesOrderNumber) и дату размещения ими заказов, начиная с 1 января 2003 года, из таблицы SalesOrderHeader. Если компания размещает несколько заказов в один день, то должна быть возвращена только одна запись. Указание: для ограничения числа записей в итоговом наборе данных, необходимо указывать условие в разделе WHERE.
2. Получить список товаров с указанием номера заказа и заказчика, заказанных в определенный день, например, 1 января 1998 года. Решение оформите в виде хранимой процедуры.
3. Сконструируйте запрос, возвращающий номер заказа, фамилию и имя заказчика, а также фамилию сотрудника, обработавшего этот заказ.
4. Создайте запрос о заказе каждого товара с указанием его наименования, цены и количества с помощью внутреннего и внешнего соединений.
5. В чем состоит отличие в использовании внутреннего и внешнего соединений при решении задачи №4?
6. Предложите вариант перекрестного соединения для БД AdventureWorks2008 и реализуйте его на SQL.
7. Получить набор данных, содержащий следующую информацию: фамилии и имена заказчиков, их адреса; название компаний-производителей, с указанием их адресов; фамилии, имена и адреса сотрудников. Указание: фамилия и имя должны быть выведены одним полем. Выборки данных осуществлять не из таблиц, а из следующих представлений: vEmployee, vIndividualCustomer, vVendor.
|
|||
|