У меня есть две приведенные ниже таблицы.SQL Server 2008 -Совершенствование по максимальным значениям в нескольких таблицах
a.id a.UpdateDate a.O a.1 b.id b.UpdateDate b.0 b.1
1 1/1/15 a b 1 2/1/15 a b
1 1/1/15 c d 1 3/1/15 a c
1 5/1/15 e f 1 3/1/15 d e
Я хотел бы видеть одну строку на Id. Последняя дата обновления для таблицы a Последнее обновление для таблицы b затем присоединяется к этим двум таблицам в Id. Таким образом, я получаю самые последние обновления из обеих таблиц с одной строкой на один идентификатор.
a.id a.UpdateDate b.id b.UpdateDate a.o a.1 b.0 b.1
1 5/1/15 1 3/1/15 e f d e
Я хочу максимальные значения для обеих таблиц и борюсь за следующие шаги. EDIT - мне нужны последние UpdateDate и id (1 строка на id) для обеих таблиц, тогда я хотел бы присоединиться к таблицам a и b к id.
Select a.id, a.UpdateDate, b.id, b.UpdateDate
From a
inner join (select id, max(UpdateDate) AS dt From a group by id)
maxdt On A.id = maxdt.id and a.UpdateDate = maxdt.UpdateDate
Вышеупомянутое решение заключается в извлечении максимального значения UpdateDate из таблицы a. Теперь как я могу извлечь max UpdateDate из таблицы b? Надеюсь, что это ясно ...
Quassnoi - Не уверен, что это сработает. Если я хочу добавить столбец из таблицы A или B, мне нужно будет добавить эти столбцы во внутренний select и group by, правильно? Я пытаюсь избежать этого, и я захватил первую часть выше, где я сам присоединился. Я надеялся, что смогу сделать это со столом B тоже. –
@mrjohn: зачем вам нужно добавлять другие столбцы для выбора и группировки? В наборе результатов есть только id и max date. – Quassnoi
Есть дополнительные столбцы, которые необходимо добавить. У меня около 40 столбцов. –