【发布时间】:2019-11-28 00:39:15
【问题描述】:
场景:我有一个客户订单主文件。我需要将一些列导入客户表(名称、地址等)并自动创建客户 ID。然后将主文件中的其余列导入订单表(日期、代理 ID、加入新创建的客户 ID)。 该过程运行良好,除了...
我的问题是:有些行输入了两次,但有细微的差别。 例如:
(name, phone, address, subscription number)
ROW 1: "John, Smith, 3232112111, 123 2nd St #4, 5shdm67h5"
ROW 2: "JOHN, SMITH, 13232112111, 123 Second Street Apt. 4, 5shdm67h5".
每一行的最后一个值是它们的“订阅号”,它是唯一键。客户显然是相同的,但是这两个条目输入的姓名、电话和地址的值不同。使用 distinct,它为 John Smith 的每一行创建两个客户 ID。
我需要 DISTINCT 仅基于订阅号并完全忽略其他列。每次我尝试时,它只会为输入不匹配的地址、电话号码等的客户插入重复的客户。因此,当插入订单时,它会为每个客户号码创建一个相同订单的列表两次,用于技术上同一个客户。
尝试了 DISTINCT(其中不存在)和 ROW_NUMBER 的几种不同组合,但我得到的客户/订单数有误,或者语法不正确。
【问题讨论】:
-
请发布您的无效代码,以便我们查看您的尝试。请注意,在您的问题中说“请帮助”是不可接受的。在 SO 上发帖的每个人都需要帮助 - 但任何成员都没有优先权或压力来提供帮助。
标签: sql sql-server insert duplicates distinct