Определение столбца легко:
SELECT *
FROM ( SELECT id,
time
FROM dbo.a
UNION
SELECT id,
time
FROM dbo.b
)
GROUP BY id
Но это не решает основную проблему этого запроса: что делать со значениями второго столбца при группировании по первому?Поскольку (что странно!) Вы используете UNION
вместо UNION ALL
, у вас не будет полностью дублированных строк между двумя подтаблицами в объединении, но вы все равно можете иметь несколько значенийвремя для одного значения идентификатора, и вы не намекаете на то, что вы хотите сделать - min, max, avg, sum или что ?!Из-за этого механизм SQL должен выдавать ошибку (хотя некоторые, такие как mysql, просто выбирают случайное значение из нескольких, я считаю, что sql-сервер лучше этого).
Так, например,измените первую строку на SELECT id, MAX(time)
или подобное!