----------批号生成问题,百分求解-----------
 ID         AID            BID      Cdesc                  MyWeek                                 PiHao   
 1         a22               1                  OK                     742周完成 
 2         a23               1                  Ok                     待定未确定周次 
 3         a99	      2                  OK                     731周	 
 4         a99	      2                  OK                     732周			 
 5         a99	      2                  OK                     799周 
 6         a27               1                  No123            742周 
 7         a28               1                  No521            712周	                        N0709		   
 根据上面的表要生成批号(PiHao),条件如下 
 ----------- 
 [如果“PiHao”为空,而且“MyWeek”是以 "3个阿拉伯数字开头 "的形式的。]-----这是首要条件 
 则依据“MyWeek”取前面3个字符自动生成PiHao。(具体分为以下几种情况):   
 (1)、如果 "AID "   + "BID "是唯一,则取“0”+“MyWeek”的前面3个字符自动生成PiHao。 
 (例:“742周完成”则生成“0742”;“待定未确定周次”则不需要生成PiHao。)   
 (2)、如果 "AID "   + "BID "不是唯一,则取“MyWeek”前3个阿拉伯数字更大的那条记录   再按条件(1)来生成pihao   。 
 例如 
 3      a99	         2               OK            731周	 
 4      a99	         2               OK            732周			 
 5      a99	         2               OK            799周 
 则这三条记录的pihao都应该是0799 
 (3)按照上面的条件(1)和(2)生成的pihao,如果 "Cdesc "列是以 "N "开头的,必须在生成的pihao前面加上N。 
 例如记录 
 6      a27               1                  No123            742周 
 最后生成的pihao   应该是   N0742   
 ===== 
 条件就是上面这些了,我要做的是,写一个存储过程,然后用一个作业来调度这个存储过程, 
 每天晚上让系统自动生成pihao并且更新到这个表里。求这个存储过程!!谢谢。
------解决方案--------------------create proc pro_表a as 
 update 表a  
 set PiHao=(case when left(a.Cdesc,1)= 'N ' then  'N ' else  ' ' end)+ '0 ' +left((select max(left(MyWeek,3)) MyWeek from 表a b where a.AID=b.AID and a.BID=b.BID),3) 
 from 表a a 
 where a.PiHao is null and a.MyWeek like  '[0-9][0-9][0-9]% ' 
 --------------------- 
 1	a22	1	OK	742周完成	0742 
 2	a23	1	Ok	待定未确定周次	NULL 
 3	a99	2	OK	731周	0799 
 4	a99	2	OK	732周	0799 
 5	a99	2	OK	799周	0799 
 6	a27	1	No123	742周	N0742 
 7	a28	1	No521	712周 	N0709 
------解决方案----------------------直接更新: 
 create table tb(ID int, AID varchar(32), BID int, Cdesc varchar(32), MyWeek varchar(32), PiHao varchar(32)) 
 go   
 insert tb(ID, AID, BID, Cdesc, MyWeek) select 1,    'a22 ',     1,       'OK ',        '742周完成 ' 
 union all select 2,    'a23 ',     1,       'Ok ',        '待定未确定周次 ' 
 union all sele