2017-04-06 71 views
-2

我有一張表,其中包含每個月的所有活動貸款(例如2017_01,2017_02,2017_03等)。由於我沒有另一個包含非活動貸款的表(封閉貸款),我必須操縱同一張表來獲得每個特定月份的已結清貸款。自己的左/右連接表

我已經嘗試了RIGHT OUTER JOIN以獲得貸款,這些貸款是前一個YEAR_MONTH的一部分,並且在下個月有一個NULL值,但由於表使用LOAN_NUMBER字段作爲關鍵連接本身,所以我沒有得到理想的結果。

任何想法我可以做什麼? Ps:在其他情況下,我需要做的是使用「WHERE NOT EXISTS」子句,但我有兩個不同的表。

我的查詢是:

SELECT DM07MD.LOAN_NUMBER, DM07MD2.LOAN_NUMBER AS L2 
FROM [dbo].[DM_07MONTHLY_DATA] DM07MD 
LEFT OUTER JOIN [dbo].[DM_07MONTHLY_DATA] DM07MD2 
ON DM07MD.LOAN_NUMBER = DM07MD2.LOAN_NUMBER 
AND DM07MD.YYYY_MM = '2017_01' 

WHERE DM07MD.S90T01_CLIENT_SEGMENT IN ('PI', 'MICRO') 
AND DM07MD.S90T01_IS_RESTRUCTURED = 1 
AND DM07MD2.LOAN_NUMBER IS NULL 
AND DM07MD.YYYY_MM = '2017_02' 
+2

添加表結構,樣本數據和預期產出的問題。 –

+2

同時向我們顯示您當前的查詢嘗試。 – jarlh

+2

並標記DBMS – JohnHC

回答

0

您可以通過使用獲得同樣存在,

SELECT DM07MD.LOAN_NUMBER FROM [dbo].[DM_07MONTHLY_DATA] DM07MD where DM07MD.YYYY_MM = '2017_02' and not exists 
(SELECT 1 FROM [dbo].[DM_07MONTHLY_DATA] DM07MD2 where DM07MD.YYYY_MM = '2017_01' and DM07MD.LOAN_NUMBER=DM07MD2.LOAN_NUMBER) 
+0

它成功執行但它不返回正確的行數:/ – Marin

+0

然後更改條件內部和外部 – Rams