比较2个结果集

时间:2015-01-08 23:23:05

标签: sql-server

我在SQL Server 2008中工作。我有2个查询。第一个是:

SELECT
col1,
col2
FROM tableA

此查询的典型结果集是:

col1 col2

facilityA 10

facilityB 20

第二个是:

SELECT
colx,
COUNT(*) AS 'Totals'
FROM tableB
GROUP BY colx

此查询的典型结果集是:

colx Totals

facilityA 10

facilityB 50

我想返回第一个结果集中的所有记录,其中第二个结果集中col2和Totals之间的值不同,col1和colx之间的对应值。例如,给定的示例应该返回:

col1 col2

facilityB 20

我如何实现这一目标?

1 个答案:

答案 0 :(得分:1)

听起来您想使用EXCEPT clause。这将逐列比较每一行,如果两个数据集之间存在相同的行,则将其排除:

SELECT col1, col2
FROM tableA

EXCEPT

SELECT colx, COUNT(*) AS 'Totals'
FROM tableB
GROUP BY colx