表格如下所示
num Year
1 | 2014
2 | 2014
3 | 2014
2 | 2015
4 | 2015
5 | 2015
6 | 2015
我希望我的查询返回
4 | 2014
5 | 2014
6 | 2014
1 | 2015
3 | 2015
从1到6,特定年份未使用的数字。
答案 0 :(得分:2)
生成所有组合,然后取出存在的组合:
select n.num, y.year
from (select distinct num from t) n cross join
(select distinct year from t) y left join
t
on t.num = n.num and t.year = y.year
where t.num is null;
请注意,year
是SQL Server中列的错误名称,因为它是函数和关键字的名称(想想datepart()
)。