您好,欢迎访问三七文档
SISS培训1数据转换培训1.需掌握的基本技能1.1.SQLSERVERDTS工具DTS工具是SQLSERVER本身自带的工具,用以将外部指定格式的数据导入到SQLSERVER相应的表中。目前主要掌握EXCEL方式的倒入,具体步骤如下:以下示例就是将DTS.XLS文件中的数据导入到HBPOSV7中的t_bd_item_info表中。SISS培训2SISS培训3然后一直点下一步直到完成SISS培训4注意事项:如果导入过程中报错,请根据实际情况来相应处理。本文后面会介绍一些常见的报错处理方法。1.2.SQLSERVER基本语法关键语法:掌握select语句,update语句,insert语句。常用函数:convert,substring,left,right,isnumeric等。常用判断语句:判断空:columns=’’orcolumnsisnull判断重复:groupbycolumnshavingcount(columns)1判断长度:datalength(columns)=40判断数子:isnumeric(columns)=1注意insert语句掌握一下insertinto…select语句。2.数据转换过程.2.1.转换t_bd_supcust_info注意事项:2.2.转换类别表t_bd_item_cls注意事项:SISS培训52.3.转换t_bd_item_info2.3.1.建立临时表假设代理发来的基本商品资料我们只取货号,自编码,商品名称,商品简称,商品类别,供应商,进价,销售价格这几列.那么请将相应的EXCEL删除无用的列,并将这几列按顺序排列.然后进行下面的建立临时表操作.(A)--建立零时表tempitemselectitem_no,item_subno,item_name,item_subname,item_clsno,main_supcust,price,sale_priceintotempitemfromt_bd_item_infowhere1=2接下来通过DTS将基本资料的EXCEL数据倒入到tempitem中.注意:在倒入的过程中如果有报错,则根据提示来修改tempitem的表结构。(B)导入数据后再对具体的字段进行检查.item_no:1.长度20字符2.不允许为空3.不允许重复--检查货号为空select*fromtempitemwhereitem_no=''oritem_noisnull--处理货号为空--方法一:直接删除deletetempitemwhereitem_no=''oritem_noisnull--方法二:用item_subno更新item_noupdatetempitemsetitem_no=item_subnowhereitem_no=''oritem_noisnull--检查重复selectitem_nofromtempitemgroupbyitem_nohavingcount(*)1--删除重复deletetempitemwhereitem_noin(selectitem_nofromtempitemgroupbyitem_nohavingcount(*)1)item_clsno:1.长度为6字符2.不允许为空3.是否所有的类别编号在类别表都有--检查类别编码为空select*fromtempitemwhereitem_clsno=''oritem_noisnull--处理类别编码为空修改为其它类别‘LB’SISS培训6updatetempitemsetitem_clsno='LB'wherewhereitem_clsno=''oritem_noisnull--检查类别编号是否存在selectdistinct(item_clsno)fromtempitemwhereitem_clsnonotin(selectitem_clsnofromt_bd_item_clswhereitem_flag='0')main_supcust1.长度8字符2.不允许为空3.是否所有的供应商编号在供应商表中都存在--检查供应商编号是否为空select*fromtempitemwheremain_supcust=''ormain_supcustisnull--处理供应商编号为空的商品,修改成自行添加的一个供应商tempsup--tempsup是我们自行增加的用来处理临时的无供应商商品updatetempitemsetmain_supcust='tempsup'wheremain_supcust=''ormain_supcstisnull--检查供应商编号是否存在selectdistinct(main_supcust)fromtempitemwheremain_supcustnotin(selectsupcust_nofromt_bd_supcust_infowheresupcust_flag='S')--另注意不要把供应商设置成0供应商,有时候客户倒入倒出的时候会删除掉这个供应商select*fromtempitemwheremain_supcust='0'--如果检查出某些商品资料的供应商在供应商表中不存在,请添加供应商档案item_name1.40个字符(20个汉字)--这里取左起20位,由于汉字在SQLSERVER的LEFT函数中算1个长度所以只取前20位--品名一般都是汉字,有点偏差就无所谓了,客户自己去改updatetempitemsetitem_name=left(item_name,20)wheredatalength(item_name)40item_subname1.20个字符(10个汉字)updatetempitemsetitem_name=left(item_subname,10)wheredatalength(item_subname)20price1.必须是数字型select*fromtempitemwhereisnumeric(price)=1sale_priceselect*fromtempitemwhereisnumeric(sale_price)=1(C)上面的检查通过后再将tempitem中处理后的数据插入到t_bd_item_info中通过触发器生成相应数据,注意t_bd_supcust_item要手动去生成,如客户有需要则帮他们生成下Insertintot_bd_item_info(item_no,item_subno,item_name,item_subname,item_clsno,main_supcust,price,sale_price)select*fromtempitemSISS培训72.3.2.捆绑商品表商品档案相应字段:combine_sta='1'2.3.3.一品多码表--注意一品多码表中的附加码item_barcode是否在商品档案中存在--如果存在根据实际情况来判断是否删除。select*fromt_bd_item_barcodewhereitem_barcodein(selectitem_nofromt_bd_item_info)2.3.4.t_rm_vip_info方法类似t_bd_item_info.card_id1.20位2.不为空3.不重复card_flowno1.20位2.不为空3.不重复另注意:1.use_num使用次数2。有效期限,vip_start_date,vip_end_date3.积分acc_num-dec_num4.储值金额residual_amt如何加密原值插入表后然后通过系统导入导出功能导出,然后再导入选择金额未加密5.T_rm_vip_consume积分明细数据不需要处理,通过导入导出自动生成6.t_rm_saving_plus_record充值记录表也不需要处理,通过导入导出自动生成2.4.整体数据测试。(D)全部转换完毕后记得将制作好的数据在系统中导出,然后再导入看是否能正常导入。
本文标题:转换数据-培训版
链接地址:https://www.777doc.com/doc-988397 .html