0
表看起来像这样如何从特定年份不存在的表中选择所有记录?
num Year
1 | 2014
2 | 2014
3 | 2014
2 | 2015
4 | 2015
5 | 2015
6 | 2015
,我想我的查询,从1返回
4 | 2014
5 | 2014
6 | 2014
1 | 2015
3 | 2015
到6,未在特定年份中使用的数量。
表看起来像这样如何从特定年份不存在的表中选择所有记录?
num Year
1 | 2014
2 | 2014
3 | 2014
2 | 2015
4 | 2015
5 | 2015
6 | 2015
,我想我的查询,从1返回
4 | 2014
5 | 2014
6 | 2014
1 | 2015
3 | 2015
到6,未在特定年份中使用的数量。
生成所有组合,然后取出存在的那些:
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()
)。