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