通过外部数据更新启谋商品属性的思路

   Updated: 2015-03-20 01:17       通过外部数据更新启谋商品属性的思路无评论

Excel 表格中有商品的国际条码、品名、价格等信息,如何通过这个 Excel 表来更新启谋数据库中此条码对应商品的价格等信息呢?

大致步骤如下:

  1. 将 Excel 表数据转换为 SQL 语句
  2. 启谋数据库中建立临时表
  3. 执行转换得到的 SQL 语句将外部数据写入临时表
  4. 执行语句实现多表更新

Excel 转换后的语句大致如下:

insert into tt(aa,bb,cc,dd,ee)values(6926166100924,'个',5.5,8.8,8.4);
insert into tt(aa,bb,cc,dd,ee)values(2000031651996,'个',6.5,10.4,10.0);
insert into tt(aa,bb,cc,dd,ee)values(6942467451176,'个',3.1,5.0,4.8);

Excel 数据转换为 SQL 语句是有几点要注意:

  • 非数字类型的列,比如商品规格、商品名称等要用单引号框起来,否则执行 SQL 语句的时候会出错。(Excel 中没有办法加左边的单引号,不过可以粘贴到 txt 文本文档中后使用替换功能实现。)
  • Excel 数据转换为 SQL 语句后将包含很多 tab 分隔符,同样要使用 Notepad++的替换功能批量删除。

这里推荐使用 Notepad++来处理 txt 文本文档,比系统自带的记事本程序好用太多,并且它是开源软件。

update 命令实现多表更新的语句:

update a set a.unit_no=b.bb,a.price=b.cc,a.sale_price=b.dd,a.vip_price=b.ee
from bi_t_item_info a,tt b 
where a.item_subno=b.aa

参考链接:sql 里的 update 实现多表更新

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注