Foxtable(狐表)用户栏目专家坐堂 → 如何批量把A表数据匹配到B表中


  共有3415人关注过本帖树形打印复制链接

主题:如何批量把A表数据匹配到B表中

帅哥哟,离线,有人找我吗?
shxlife
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:25 积分:357 威望:0 精华:0 注册:2020/12/31 8:59:00
如何批量把A表数据匹配到B表中  发帖心情 Post By:2021/4/29 8:30:00 [只看该作者]

如A表有以下几个字段: 一级细分市场,二级细分市场,三级细分市场,品牌代码,费用率,起用日期,终止晶期。根据不同情况,大约有60多条记录。
  B表有也有以下字段:客户名,一级细分市场,二级细分市场,三级细分市场,品牌代码,收入,费用率,收款日期,记录大约有1万多条。
   其中根据A表中:一级细分市场,二级细分市场,三级细分市场,品牌代码与B表中匹配,将A表的 费用率  添加到B表中的 费用率。 其中A表字段中几个字段数据可以为空,
   请问如何用SQL语句批量处理。

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:109678 积分:558082 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/4/29 8:49:00 [只看该作者]

什么数据库?内部表、access还是SqlServer?

 回到顶部
帅哥哟,离线,有人找我吗?
shxlife
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:25 积分:357 威望:0 精华:0 注册:2020/12/31 8:59:00
  发帖心情 Post By:2021/4/29 9:05:00 [只看该作者]

sql数据库

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:109678 积分:558082 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/4/29 9:20:00 [只看该作者]

update a set 费用率=b.费用率 from 表A as a inner join 表B as b on  a.一级细分市场=b.一级细分市场 and a.二级细分市场 = b.二级细分市场 and ......

 回到顶部
帅哥哟,离线,有人找我吗?
shxlife
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:25 积分:357 威望:0 精华:0 注册:2020/12/31 8:59:00
  发帖心情 Post By:2021/4/29 9:38:00 [只看该作者]

因为:字段内容不一定固定的,同时在A表中某个字段有多项内容: 如A表中品牌代码字段,可以有多个品牌。在B表中是单一的品牌。有些字段A表中为空值。   A表取的数据需要处理,需要组合表达式过的


 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:109678 积分:558082 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/4/29 9:57:00 [只看该作者]

这种没有办法使用一条sql处理。加载数据后使用代码处理,或者到存储过程里使用游标循环A表所有行,逐行拆分品牌处理。

如果有些列还是空的,这就很麻烦了,sql对空值要单独判断的,5个列其中可能有1、2、3、4个列是空值的判断组合至少有4*3*2=24个。建议从业务逻辑上改进,否则就是个坑。

比如二级细分市场可能为空,就有3种不同的判断结果
a.一级细分市场=b.一级细分市场 and a.二级细分市场 = b.二级细分市场
a.一级细分市场=b.一级细分市场 and a.二级细分市场 is null and b.二级细分市场  is null
a.一级细分市场=b.一级细分市场

 回到顶部
帅哥哟,离线,有人找我吗?
shxlife
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:25 积分:357 威望:0 精华:0 注册:2020/12/31 8:59:00
  发帖心情 Post By:2021/4/30 16:16:00 [只看该作者]

游标循环A表所有行 代吗如何写?  

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:109678 积分:558082 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/4/30 16:50:00 [只看该作者]


 回到顶部