我有三个变量:组变量var1和var2。对于每个组,var2的每个值都应存在于var1中。我想返回所有不是这种情况的组(因此每个组我想知道何时var1中不包含var2)
示例:
mygroup var1 var2
1 1 -
1 2 1
1 3 2
1 4 -
2 23 23
2 24 20
2 26 -
3 30 10
3 20 -
3 10 -
所以在这种情况下,我希望我的输出为第2组,因为var1(第2组)中未包含20。
任何帮助将不胜感激。
答案 0 :(得分:2)
不存在
select mygroup from table_name t1
where not exists( select 1 from table_name t2 where t1.var2=t2.var1
and t1.mygroup=t2.mygroup)
and t1.var2 is not null
答案 1 :(得分:1)
使用cte和临时表的另一种方法:
尝试以下方法:
(pin|status|announce)
此解决方案在MsSql-2014中有效。