日期:2014-05-19  浏览次数:20527 次

----------SQL------update------
address    
-----------------------    
01             四川省    
02             北京市    
03             天津市    
……    
-----------------------    
subject    
-----------------------    
01                     施工员    
02                     预算员    
03                     资料员    
……    
-----------------------    
enter    
-----------------------    
name                   subject     address             examnumber    
王1                     施工员         天津市             030100001    
王2                     预算员         北京市             020200001    
王3                     预算员         北京市             020200002    
王4                     施工员         四川省             020100001    
王5                     施工员         四川省             020100002    
王6                     资料员         天津市             030300001    
王7                     资料员         天津市             030300002    
王8                     预算员         天津市             030200001    
王9                     预算员         天津市             030200002    
王10                   预算员         四川省             020200001
------------------------    
现在表里面的examnumber     全是空的。    
求一条更新语句来实现这个号码的更新    
上面是比较简单的。    
这里是         地址+科目+5位排序号    
这里加入地址以后应该在上面的语句里面怎么修改才可以实现啊。
update   e
set
        examnumber   =a.addressid+s.subjectid+right(100000+(select   count(*)   from   enter   where   address=e.address   and   name <=e.name),5)
from  
        enter   e,gw_subject   s,gw_address   a
where
        e.subject=   s.subject   and   e.address=a.addressname  
这么写出来的数据是有错的。
他是直接按照subject排序的。不能实现先排地区再排科目
想找人帮我修