簡體   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