以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 如何批量把A表数据匹配到B表中 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=164188) |
-- 作者:shxlife -- 发布时间:2021/4/29 8:30:00 -- 如何批量把A表数据匹配到B表中 如A表有以下几个字段: 一级细分市场,二级细分市场,三级细分市场,品牌代码,费用率,起用日期,终止晶期。根据不同情况,大约有60多条记录。 B表有也有以下字段:客户名,一级细分市场,二级细分市场,三级细分市场,品牌代码,收入,费用率,收款日期,记录大约有1万多条。 其中根据A表中:一级细分市场,二级细分市场,三级细分市场,品牌代码与B表中匹配,将A表的 费用率 添加到B表中的 费用率。 其中A表字段中几个字段数据可以为空, 请问如何用SQL语句批量处理。
|
-- 作者:有点蓝 -- 发布时间:2021/4/29 8:49:00 -- 什么数据库?内部表、access还是SqlServer? |
-- 作者:shxlife -- 发布时间:2021/4/29 9:05:00 -- sql数据库 |
-- 作者:有点蓝 -- 发布时间: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 -- 发布时间:2021/4/29 9:38:00 -- 因为:字段内容不一定固定的,同时在A表中某个字段有多项内容: 如A表中品牌代码字段,可以有多个品牌。在B表中是单一的品牌。有些字段A表中为空值。 A表取的数据需要处理,需要组合表达式过的 |
-- 作者:有点蓝 -- 发布时间: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 -- 发布时间:2021/4/30 16:16:00 -- 游标循环A表所有行 代吗如何写? |
-- 作者:有点蓝 -- 发布时间:2021/4/30 16:50:00 -- https://www.baidu.com/s?wd=SqlServer%20%E6%B8%B8%E6%A0%87 |