有点难度的SQL问题
有两个表A、B,结构如下 
 表A 
 [主表ID]   ,[是否完成] 
 1                        已完成 
 2                        部分 
 3                        未完成   
 表B 
 [子表ID],[主表ID],[状态] 
 1                     ,   1                  ,   未完成 
 2                     ,   1                  ,   已完成 
 3                     ,   1                  ,   已完成 
 4                     ,   2                  ,   未完成   
 表A和表B通过[主表ID]关联,我想更改表A的[是否完成]字段,当表B的所有记录都完成,则表A为“完成”,当表B的部分完成,则表A为“部分”,当表B都未完成,则表A“未完成”。
------解决方案--------------------Update a set a.[是否完成]=IsNULL((Case when  
      not exists(Select * from 表B Where  
               状态= '已完成 ' and id=a.id)  then  '未完成 ' 
      when not exists(Select * from 表B Where  
               状态= '未完成 ' and id=a.id)  then  '已完成 ' 
      else  '部分 ' end),[是否完成]) 
 from 表A as a