Я пытаюсь получить все отличные значения через 2 таблицы с помощью объединения.
Идея состоит в том, чтобы получить количество всех уникальных значений в columnA столбце без повторений так, чтобы я мог получить суммирование всех столбцов, которые содержат уникальный columnA.
Это - то, что я попробовал (SQL-сервер выражают 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 из каждой таблицы.