日期:2014-05-17 浏览次数:21257 次
create table t1
(
y_no varchar2(20),
gz varchar2(10),
hg varchar2(10)
)
insert into t1 values ('no1','规则一','合格');
insert into t1 values ('no1','规则二','合格');
insert into t1 values ('no1','规则三','合格');
insert into t1 values ('no2','规则一','合格');
insert into t1 values ('no2','规则二','不合格');
insert into t1 values ('no2','规则三','合格');
insert into t1 values ('no3','规则一','合格');
insert into t1 values ('no3','规则二','合格');
insert into t1 values ('no3','规则三','不合格');
select y_no 员工号,
decode(sum(c1),1,'合格','不合格') 规则一,
decode(sum(c2),1,'合格','不合格') 规则二,
decode(sum(c3),1,'合格','不合格') 规则三,
case when sum(c1+c2+c3)=3 then '合格' else '不合格' end 是否合格
from
(select t1.y_no,
case when gz='规则一' and hg='合格' then 1 else 0 end c1,
case when gz='规则二' and hg='合格' then 1 else 0 end c2,
case when gz='规则三' and hg='合格' then 1 else 0 end c3
from t1)
group by y_no
order by y_no
员工号 规则一 规则二 规则三 是否合格
----------------------------------------------
1 no1 合格 合格 合格 合格
2 no2 合格 不合格 合格 不合格
3 no3 合格 合格 不合格 不合格