Подтвердить что ты не робот

Получение отличного значения в двух таблицах серверов 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
)
4b9b3361

Ответ 1

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. Объявление временной таблицы должно устранить неоднозначность, которая могла бы помешать выполнению вашего запроса.

Ответ 2

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 из каждой таблицы. Вернуться к началу страницы.

Ответ 3

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

Ответ 4

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

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