Хелпикс

Главная

Контакты

Случайная статья





Задание 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.



  

© helpiks.su При использовании или копировании материалов прямая ссылка на сайт обязательна.