如何提取客户表中联系人及电话?
表1:
维修卡号 用户名称 地址 联系人1 电话1 联系人2 电话2
------ ------- ----- ----- ---- ------ ----
B10001 客户1 地址1 张三 1234567893 李四 07572237654
B10002 客户1 地址1 王生 1672367892 李四 1897726543
B10003 客户1 地址1 张三 1389435531 王生 07575467533
B10004 客户2 地址2 曾小姐 1392234521 黄蜂 02033435234
B10005 客户2 地址2 张勇 1899567894 曾小姐 07573898664
B10006 客户3 地址3 何洁 1375567895 李四 1379908878
...
表2:
联系人ID 客户名称 联系人名称 电话1 电话2 电话3
------ ------ -------- ----- ---- ----
我需要把表1中联系人的信息提取导入到表2中,如何编写SQL语句?其中同一个客户有多个联系人,而同一个联系人
也拥有多个联系电话,如何把他们汇总到表2中?请高人指点。
------解决方案--------------------如楼主所说,添加到表2的电话可能不止一个,或许是两个,也可能是七八个,但看表2的结构只给了3个备用的联系电话字段,那么多余的怎么处理,建议是将多个联系人加标识用特殊符号分开,电话对应同样处理,例如:
联系人 电话
张三(1),李四(2) 1234567893(1),1234567895(1),1379908878(2)
不知这样可以实现楼主的信息统计没。
------解决方案--------------------提供一个思路,比较麻烦些,但应该能解决问题,看这样行不?
先建立临时表,按不同客户联系人生成一个有序的电话号码序列,为避免丢失,甚至可以预留10列或更多电话号码
比如临时表#TEMP,字段如下:序号(按照用户名称、联系人生成的从1到n的序号),用户名称,联系人,联系电话。
如下操作看看
(表2的联系人ID采用自动编号即可)
--插入第一个联系电话
insert into [表2](客户名称, 联系人名称, 电话1)
select 用户名称, 联系人, 联系电话
from #TEMP
where 序号=1
--更新第二个联系电话
update [表2]
set 电话2=联系电话
from #TEMP
where [表2].用户名称=#TEMP.用户名称 and [表2].联系人= #TEMP.联系人
and 序号=2
--更新第三个联系电话
update [表2]
set 电话3=联系电话
from #TEMP
where [表2].用户名称=#TEMP.用户名称 and [表2].联系人= #TEMP.联系人
and 序号=3
...