2015-02-23 29 views
0

我們當前正在從進度數據庫遷移到sql服務器,並且我正在生成一些報告,以便從每個報告中提取數據。其中一個報告需要找到有多個記錄存在於其SSN的客戶,而我只是沒有得到它的任何地方。任何幫助,將不勝感激。僅需要在組合查詢中僅返回SSN的重複記錄

SELECT 
    [SSN] 
    ,[Loan Number] 
    ,[Last Name] 
    ,field 4 
    ,field 5 
    ... 

FROM 
(SELECT 
    [SSN] 
    ,[Loan Number] 
    ,[Last Name] 
    ,field 4 
    ,field 5 
    ... 

FROM openquery(progressdb, 
'SELECT 
    "SSN" 
    ,"Loan Number" 
    ,"Last Name" 
    ,field 4 
    ,field 5 
    ...') as prog1 

UNION ALL 

SELECT 
    [SSN] 
    ,[Loan Number] 
    ,[Last Name] 
    ,field 4 
    ,field 5 
    ... 
    ) as combined 
+0

嘗試通過SSN進行聚合並使用HAVING COUNT(*)> 1.您是否也想在一個數據庫中查找重複項或忽略新舊數據庫之間的重複項? – jean 2015-02-23 16:31:26

+0

我在這裏看到兩個主要問題。首先是你應該規範你的數據。這樣你就不會像這樣一遍又一遍地存儲數據。名稱,SSN [ack]等列應位於單獨的表格中。第二個更大的問題是存儲SSN。從你發佈的內容看,它甚至可能是明文形式。敏感和個人數據應始終加密。 – 2015-02-23 17:11:41

+0

我不是DBA,我只是在運行查詢。就正常化而言,它們在單獨的表格中,我只是簡化了我在這裏輸入的內容。實際的查詢是從很多不同的表中拉出很多字段。我不打算進入我們的加密/安全實踐,因爲它與這個問題沒有密切關係。 – johnsjg 2015-02-23 20:19:01

回答

0

好的我有我需要的東西。我沒有完全掌握查詢中所需的內容,而是根據= iif(count(Fields!Loan_Number.Value)= 1,true,false)的表達式顯示/隱藏SSRS中的SSN組。把我帶到了我需要的地方。

相關問題