2014-02-05 69 views
1

我有兩個查詢(每個查詢都在不同的表上)和他們自己的where子句。
兩個表的主鍵具有不同的名稱,但保持相同的值。
如何取出結果集1中但不包含在結果集2中的記錄。來自兩個不同查詢的兩個結果集之間的罕見記錄

這裏是兩個查詢的示例
查詢1:

SELECT DISTINCT [EntityID],[Year],[Name],[OperationalStatus],[RefTypeID] 
FROM [DB].[dbo].[Entity] 
WHERE [Year]='2014' AND [RefTypeID] IN ('abc','xys') 

QUERY2:

SELECT DISTINCT [OrganizationID],[Year],[OperationalStatusID],[Active],[ModifiedBy],[ModifiedDate] 
     FROM [DB2].[dbo].[Organization] WHERE [Year]='2014' 

從QUERY1主鍵是[ENTITYID]和來自第二查詢主鍵是[OrganizationID]。這兩列持有相同的價值觀

+0

你的第二個查詢是不完整的,請編輯您的問題,以顯示實際的查詢。您還需要告訴我們哪個列/列是主鍵 – Lamak

+1

這兩個查詢拉出的列是不同的。你如何確定哪些記錄匹配? – dasblinkenlight

+0

對不起。我剛剛編輯了第二個查詢。 – Rishab

回答

2

像這樣:

SELECT * FROM 
    (
    SELECT DISTINCT [EntityID],[Year],[Name],[OperationalStatus],[RefTypeID] 
    FROM [DB].[dbo].[Entity] A 
    WHERE [Year]='2014' AND [RefTypeID] IN ('abc','xys') AND 
    Not Exists 
    (
     SELECT DISTINCT [OrganizationID],[Year],[OperationalStatusID],[Active],[ModifiedBy],  
     [ModifiedDate] 
     FROM [DB2].[dbo].[Organization] D WHERE [FiscalYear]='2014' AND 
     A.EntityID = D.OrganizationID AND 
     A.Year=D.Year 
     A.Name = D. Name 
    ) 
) AS T 
+0

這是做到了。謝謝! – Rishab

+0

@Vignesh,'DISTINCT'確實不需要在子查詢中.. !!但實際上對結果仍然沒有傷害。 –

相關問題