想对分组以后的结果查询,有知道的吗
单位 值
1a企业1
4a企业2
6a企业1
7a企业4
5b企业1
2b企业2
3c企业3
想查询上述表中值 有1有2 但没有 4 的单位 用sql语句怎么实现 sql
[解决办法]
select 单位 from 表 where 值 in (1,2)
except
select 单位 from 表 where 值=4
;with cte(id,unit,value) as
(
select 1,'a企业',1
union all select 4,'a企业',2
union all select 6,'a企业',1
union all select 7,'a企业',4
union all select 5,'b企业',1
union all select 2,'b企业',2
union all select 3,'c企业',3
)
select *
from cte a
where unit not in(select unit from cte b where value in(1,2,4))
/*
idunitvalue
3c企业3
*/
select * from (
select *
from
(select distinct 单位 from t) a
full join (select distinct 值 from t) b
) a
left join t b on a.单位=b.单位 and a.值=b.值
where a.值=4 and b.单位 is null