2012-09-04 37 views
0

我正在使用MS SQL 2008R2。我正在使用部分數據集(即不是所有的柱),並且無法排除重複的行。例如,以下是索賠的行數:查詢返回每個副本的1行

Claim  Line Doctor Received Paid 
02195111345 1 22924 1995-11-13 2001-10-02 
02195111345 1 22924 1995-11-13 2001-10-02 
02195111345 2 22924 1995-11-13 2001-10-02 
02195111345 2 22924 1995-11-13 2001-10-02 
02195111345 3 22924 1995-11-13 2001-10-02 
02195111345 3 22924 1995-11-13 2001-10-02 
02195111345 4 22924 1995-11-13 2001-10-02 
02195111345 4 22924 1995-11-13 2001-10-02 
02195111345 5 22924 1995-11-13 2001-10-02 
02195111345 5 22924 1995-11-13 2001-10-02 

我想爲每個Claim + Line選擇只有1行。還有其他列,但它們包含每個Claim + Line組合的相同信息。

我可以很容易地識別與重複的行與查詢,如:

SELECT [ClaimNum],[ClaimNum_Line] 
FROM [dbo].[DamagedClaims] 
GROUP BY [ClaimNum],[ClaimNum_Line] 
HAVING COUNT(*) > 1 

通常情況下,我會使用此查詢創建派生表和加入回表 - 與其他coulmn如MAX (版本)等,但沒有這樣的列來區分重複。

我已經考慮

SELECT ClaimNum], Line, MAX(DOCTOR), MAX([Date Received]), MAX([Date Paid]) 

,但大約有20列和750萬行,並且似乎是一個很大的開銷(我很同情我們的SQL服務器!)。有更好的解決方案嗎?

最佳, 斯科特

回答

2

只需添加DISTINCTSELECT

SELECT DISTINCT Claim, Line, Doctor, Received, Paid 
FROM tableName 
2

我看不出有任何列,可以是你的基礎上最大行,請嘗試使用DISTINCT

SELECT DISTINCT * 
FROM tableA