当前位置: 代码迷 >> Sql Server >> 求两表批量更新sql语句解决方案
  详细解决方案

求两表批量更新sql语句解决方案

热度:19   发布时间:2016-04-27 17:49:50.0
求两表批量更新sql语句
完成更新a表和b表,最好用一个sql语句完成,不可以的话就更新a表一个语句,更新b表一个语句。

基础是a表和b表的Category都一样为x

一、根据b表更新a表,要求:
1、若b表中存在与a表中aID相同的bID且aCheck是1就将aValidate更新为1,aCheck     不是1就将aValidate更新为3。

2、若b表中不存在与a表中aID相同的bID且aCheck是1就将aValidate更新为2,aCheck不是1就将aValidate更新为4。

二、根据a表更新b表,要求:

1、若a表中存在与b表中bID相同的aID且aCheck是1就将bValidate更新为1,aCheck     不是1就将bValidate更新为3。

2、若a表中不存在与b表中bID相同的aID且aCheck是1就将bValidate更新为2。

示例数据:
更新前
a:                                                                                   b:
 
aID       aCheck           Category     aValidate               bID       Validate       Category
1               1                       x                   null                     1               null             x
2               1                       x                   null                     3               null             x
6               2                       x                   null                     7               null             x
7               3                       x                   null                     8               null             x
8               3                       x                   null                     9               null             x
9               1                       y                   null                     10             null             y


更新后:
a:

aID       aCheck         aValidate                                                 Category                  
1             1                         1(b表中存在且aCheck是1)                     x                  
  相关解决方案