繁体   English   中英

SQL Server 2005 - 在一对多关系中更新表

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM