我有兩個表 - > Order和OrderLine。訂單包含標題信息,是一對多關係的一面。 OrderLine包含組成訂單的行,並且是許多方面。假設我有3個訂單,每個訂單都有自己的ID,但每個訂單行的數據都是相同的,我認爲這是重複的,但前提是組中的所有記錄都是相同的。刪除重複分組數據的最佳方法 - SQL Server 2008
我已經嘗試過使用CheckSum_Agg來做這件事,但它會產生大量的誤報,導致記錄被刪除,並非完全重複。
試圖避免一個討厭,費力的嵌套遊標。
任何想法?
帖子編輯:的 --An例如假陽性CHECKSUM_AGG返回...
Create Table #OrderLine(OrderId Int,ProductTypeId Int,ProductId Int);
Insert Into #OrderLine(OrderId,ProductTypeId,ProductId)
Values(1,1,5),(1,2,6),(2,1,6),(2,2,5)
Select CHECKSUM_Agg(ProductTypeId),CHECKSUM_Agg(ProductId)
From #OrderLine
Group By OrderId
Drop Table #OrderLine
感謝您的回覆。其實我已經嘗試過了,它不起作用。 這裏有一個場景的簡化的例子在那裏給誤報: 訂單行表包括這兩行 一階有兩個記錄: 訂單類型ID:1,產品編號:5 訂單類型ID:2,產品編號:6 二階有兩個記錄: 訂單類型ID:1,產品編號:6 訂單類型ID:2,產品編號:5 CHECKSUM_AGG說,這些是相同的,他們都沒有。 – Jimbo
創建表#OrderLine(OrderId Int,ProductTypeId Int,ProductId Int);
插入進#OrderLine(的OrderId,ProductTypeId,產品編號)
值(1,1,5-),(1,2,6),(2,1,6),(2,2,5)
選擇CHECKSUM_AGG(ProductTypeId),CHECKSUM_AGG(產品編號)
從#OrderLine
集團通過的OrderId
刪除表#OrderLine
– Jimbo
很抱歉的格式。似乎不適合我。 – Jimbo