Я исчерпал свое остроумие в связи с этой проблемой, поэтому я ставлю перед вами задачу:
--CREATING DATA:
DECLARE @CONTACTS TABLE (ID INT, NickName CHAR(10))
INSERT INTO @CONTACTS VALUES (1359,'John Smith')
INSERT INTO @CONTACTS VALUES (1360,'Ana Keller')
INSERT INTO @CONTACTS VALUES (1361,'Joshua Doe')
DECLARE @ENTERPRISES TABLE (ID INT, CON_ID INT, ASSOCIATION DATETIME)
INSERT INTO @ENTERPRISES VALUES (123,1359,Convert(datetime, '2000-10-09', 120))
INSERT INTO @ENTERPRISES VALUES (123,1360,Convert(datetime, '2000-02-21', 120))
INSERT INTO @ENTERPRISES VALUES (123,1361,Convert(datetime, '2000-04-09', 120))
--QUERYING THE DATA:
SELECT * FROM @CONTACTS C
JOIN @ENTERPRISES E ON C.ID = E.CON_ID
--THE RESULT SET OF MY DREAMS:
1359 John Smith 123 1359 2000-10-09
Мне нужна целая строка запроса, но только та, которая имеет максимальную АССОЦИАЦИЮдата для каждого корпоративного идентификатора.Это всего лишь пример для ясности, мой реальный запрос намного сложнее, с гораздо большим количеством столбцов и триллионов строк.Я пытался
SELECT *,max(FOUNDING) OVER (PARTITION BY E.ID) FROM @CONTACTS C
JOIN @ENTERPRISES E ON C.ID = E.CON_ID
Но он все равно приносит все три строки.Другие подходы были хуже и привели к тому, что синтаксический анализатор попросил меня указывать GROUP BY для каждого столбца.Я ценю вашу помощь.