У меня есть эти таблицы (в SQL-Server 2008 R2):
Table1:
Id Guid
1 {530D8FE1-7541-43CC-9F92-1AA776490155}
2 {CAC5B001-C8DE-46AA-A848-5D831633D0DF}
3 NULL
Table2:
Id Column1 Table2FK
1 1 1
2 1 2
3 1 3
Я хочу выполнить запрос, который агрегирует по Table2.Column1
и присоединяет его к строке Table1
с максимальным идентификатором, но содержит ненулевое значение для Table1.Guid
. В этом случае он должен присоединиться к строке 2 таблицы 1. Написано как запрос, я хочу что-то вроде этого (хотя это не является правильным sql):
select t2.Id, t2.Column1, t2.Table2FK, max(t1.Id), t1.Guid
from Table2 t2
join Table1 t1 on t2.Table2FK = t1.Id
where t1.Guid is not null
group by t2.Column1
Мне удалось выполнить нулевую проверку и агрегирование по Table2.Id2
по отдельности, но не в обоих запросах. В первом случае объединение возвращает 2 строки, во втором - объединение в строке 3 из Table1
.