Получение отличного значения в двух таблицах серверов SQL Server

Я пытаюсь получить все различные значения в двух таблицах, используя объединение.

Идея состоит в том, чтобы получить счет всех уникальных значений в столбце columnA без повторов, чтобы я мог получить суммирование всех столбцов, содержащих уникальный столбец A.

Это то, что я пробовал (sql server express 2008)

select count(Distinct ColumnA) from ( select Distinct ColumnA as ColumnA from tableX where x = y union select Distinct ColumnA as ColumnA from tableY where y=z ) 

 SELECT COUNT(distinct tmp.ColumnA) FROM ( (SELECT ColumnA FROM TableX WHERE x=y) UNION (SELECT ColumnA FROM TableY WHERE y=z) ) as tmp 

Дополнительные отличия от TableX и TableY не нужны; они будут разделены в предложении tmp.ColumnA. Объявление временной таблицы должно устранить неоднозначность, которая может помешать выполнению вашего запроса.

 SELECT COUNT(*) FROM ( SELECT DISTINCT ColumnA From TableX WHERE x = y UNION SELECT DISTINCT ColumnA From TableY WHERE y = z ) t 

Использование «UNION» не будет возвращать дубликаты. Если вы использовали «UNION ALL», то дублируйте значения ColumnA из каждой таблицы.

 SELECT DISTINCT Id, Name FROM TableA UNION ALL SELECT DISTINCT Id, Name FROM TableB WHERE TableB.Id NOT IN (SELECT Id FROM TableA) 

Чтобы получить отдельные значения в запросе Union, вы можете попробовать это

 Select distinct AUnion.Name,AUnion.Company from (SELECT Name,Company from table1 UNION SELECT Name,Company from table2)AUnion