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)

 



© 2018 | Анна Петросян | pashelp@yandex.ru