日期:2014-05-18  浏览次数:20435 次

再次求助 关于 group by 使用的另类
刚才发了个贴可能我没叙述清楚


如上面。
我想用group by 条件是 工号下面 车间为 L and 状态=1 
比如 0111-01下面有 车间为L的记录 要他们的状态全部都等于 1
0111-01这条信息才显示!
再如 
0111-02里面 车间记录为 L的有两条。但其中有一条状态不等于1
所以就不显示 0111-02这条结果
最终我需要的结果如下: 
0111-01 山西
0111-03 圣歌班
希望高手们能帮我想个简单的办法!!

------解决方案--------------------
select m.* from tb m where not exists(select 1 from
(select * from tb where 车间 = 'L' and 状态 <> 1 ) n
where m.车间 = 'L' and m.工号 = n.工号)

select m.* from tb m where not exists(select 1 from
(select * from tb where 车间 = 'L' and 状态 <> 1 ) n
where m.车间 = 'L' and m.工号 = n.工号 and m.用户 = n.用户)