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

求一批量更新数据的语句
有a,b两表如下:

a:                                                           b:
aID     aLocation   aResult                   bID         bLocation       bLocked
1                                                               1                   L1                     N
2                                                               2                   L2                     N
3                                                               3                   L3                     Y  
4
5
6

更新的时候首先判断   bID   中是否含有与a相同的aID,有的话aLocation写为对应b表的bLocation,判断bLocked   是否是N,是的话将a表的aResult写为X,负责写为Y,如果b表中没有与aID相同的bID,aLocation不变,aResult写为Z.结果如下:

a:                                                        
aID     aLocation   aResult                
1               L1               X                                              
2               L2               X                                  
3               L3               Y                                    
4                                 Z
5                                 Z
6                                 Z


谢谢!!


------解决方案--------------------
Update
A
Set
aLocation = isnull(B.bLocation, ' '),
aResult = (Case B.bLocked When 'N ' Then 'X ' When 'Y ' Then 'Y ' Else 'Z ' End)
From
A
Left Join
B
On A.aID = B.bID
------解决方案--------------------