我正在尝试使用联合在2个表中获取所有不同的值。
这个想法是要获得columnA列中所有唯一值的计数而无需重复,这样我就可以得到包含唯一的columnA的所有列的总和。
这是我尝试过的(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子句中删除。声明临时表应消除可能导致查询无法执行的歧义。