T-SQL | JOIN TO SubQuery |
Связываемся с подзапросами.
Например, по данным о продажах – SalesOrderHeader – нужно получить соответствующую дату заказа (OrderDate) по последней отгрузке товара (MaxShipDate).
Пример выполнен на данных БД AdventureWorks, таблица Sales.SalesOrderHeader.
Дату последней отгрузки получаем подзапросом (MaxShip), с которым связывается таблица основных данных о продажах (SalesOrderHeader):
USE AdventureWorks GO SELECT DISTINCT OrderDate ,ShipDate as MaxShipDate FROM Sales.SalesOrderHeader Sales INNER JOIN (SELECT MAX(ShipDate) AS Date FROM Sales.SalesOrderHeader) MaxShip ON Sales.ShipDate = MaxShip.Date
Аналогичный запрос – на дату последней отгрузки товара получить соответствующие ID заказов:
USE AdventureWorks GO SELECT SalesOrderID ,ShipDate as MaxShipDate FROM Sales.SalesOrderHeader Sales INNER JOIN (SELECT MAX(ShipDate) AS Date FROM Sales.SalesOrderHeader) MaxShip ON Sales.ShipDate = MaxShip.Date
См. также: ➢Проверка уникальности с помощью GROUP BY ➢Применение оператора OVER (PARTITION BY)
|