[英]SQL Server 2005 - Updating table in a one to many relationship
我有一个临时表,它是从平面文件创建的,并在复制到最终目的地之前进行了修改。 如果需要,将插入一些记录并更新其余记录。
我唯一的问题是它是一对多的关系。 该表是零售商的列表,其中一些零售商使用相同的商店名称和 SS# 输入不止一次,但联系人类型不同。
像这样:
Store_ID SS# First_Name Last_Name Type Description
________________________________________________________________________
1234 123-12-1234 JP Crawford A Owner
1234 123-12-1234 JP Crawford D Other Contact 1
1234 987-76-9876 Aaron Nola E Other Contact 2
1236 321-12-3210 Mikael Franco A Manager
1236 321-12-3210 Mikael Franco J Other Contact 7
当有重复的 store_id/SS# 时,我需要能够选择其中一条记录。 没有可用的日期,所以我不知道最后添加的是哪条记录。 如果其中一个记录是“所有者”,另一个是“其他联系人”,我可以假设正确的记录是“所有者”。 例如,如果其中之一是“经理”,则相同。 但也有一些示例,其中一条记录可能是“其他联系人 5”,而下一条记录可能是“其他联系人 6”。
任何建议都非常感谢。
假设最高类型(例如 A)是您想要在重复的情况下选择的类型,以下应该有效:
SELECT temp.store_id, temp.ss#, temp.first_name,
temp.last_name, temp.type, temp.description
FROM
(SELECT t.store_id, t.ss#, t.first_name,t.last_name,
t.type, t.description,
ROW_NUMBER() OVER(PARTITION BY t.store_id,ss# ORDER BY t.type) num
FROM YourTable t) temp
WHERE temp.num=1;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.