Выберите топ 1 из внутреннего подзапроса соединения - PullRequest
0 голосов
/ 23 октября 2018

Я хочу выбрать первое значение столбца во внутреннем соединении для каждого успешного соединения.

@getEndDate = SELECT c.CustomerId, c.ProductId FROM @customer AS c
INNER JOIN (SELECT (DateTime?) EndDate AS EndDate, (int) CustomerId AS CustomerId 
FROM @Installation 
ORDER BY EndDate FETCH 1 ROW OFFSET 0 ROWS) AS i ON c.CustomerId == i.CustomerId

При этом я получаю EndDate с наименьшей конечной датой в @Installation, где встречается ciretia соединения.

Как получить только первое значение из внутреннего подзапроса соединения для каждого успешного соединения?

Ответы [ 2 ]

0 голосов
/ 25 октября 2018

Вы можете применить функцию FIRST_VALUE для INNER JOIN SELECT:

Проверьте это: https://docs.microsoft.com/en-us/u-sql/functions/analytic/first-value

0 голосов
/ 23 октября 2018

Выберите во внутреннем подзапросе следующее соединение:

(SELECT (DateTime?) MAX(EndDate) AS EndDate, (int) CustomerID AS CustomerID FROM 
@Installation GROUP BY CustomerID) 

Работает для моего случая.

...