求教一个视图的写法
有如下一张数据表:
create table cfg_callerrule_info
(
	policy_id varchar(32),         --策略ID
	rule_type smallint,            
--1主叫挂断次数,2主叫接通率
	time_slice smallint,           --时间片,单位为分钟,判断该时间段内,操作的情况
	threshold varchar(20),         --违规发送频率阈值(对于主叫接通率,为百分数)
	relation smallint,             --1:与,0:或,主叫挂断次数和主叫连通率的关系
	primary key (policy_id,rule_type)
);
目前需要定义一个视图,需求如下:
(1)既有主叫挂断次数,又有主叫接通率的规则
policy_id   PN036201207181328000315
rule_type   
1
time_slice  10
threshold   10
relation    1
policy_id   PN036201207181328000315
rule_type   
2
time_slice  20
threshold   20
relation    1
得到:
policy_id,           PN036201207181328000315
hang_up_time_slice   10
hang_up_threshold    10
conn_time_slice      20 
conn_threshold       20
relation             1
(2)只有主叫挂断次数、主叫接通率之一的策略
..
policy_id   PN036201207131503570103
rule_type   
1
time_slice  22
threshold   22
relation    1
得到:
policy_id,           PN036201207131503570103
hang_up_time_slice   22
hang_up_threshold    22
conn_time_slice       
conn_threshold       
relation 
..
policy_id   PN036201207181328000309
rule_type   
2
time_slice  100
threshold   100
relation    1  
得到
policy_id,           PN036201207131503570103
hang_up_time_slice   
hang_up_threshold    
conn_time_slice       100
conn_threshold        100
relation 
现在写出来的视图只能满足(1),修改多次也没有达到(1)(2)都满足,
满足(1)的视图的写法:
CREATE VIEW v_cfg_callerrule_info(policy_id,hang_up_time_slice,hang_up_threshold,conn_time_slice,conn_threshold,relation)
AS
SELECT c1.policy_id,c1.time_slice,c1.threshold,c2.time_slice,c2.threshold,
		CASE 
			WHEN(c1.relation IS NOT NULL) THEN c1.relation
			WHEN(c2.relation IS NOT NULL) THEN c2.relation
			ELSE NULL
		END
	from cfg_callerrule_info c1,cfg_callerrule_info c2
	where c1.policy_id = c2.policy_id and c1.rule_type < c2.rule_type 		
这个问题已经纠结了很久了,请各位不吝赐教!
   
      
------解决方案--------------------create view xxx as
with
&nb