2009-10-27 59 views
0

我有一個查詢,顯示我的所有機會的列表中的一個查詢我怎麼能排除第三查詢值(訪問)

我有一個查詢,顯示我的排除機會的列表,那些我們想從結果

我需要生成查詢,將採取一切從第一個查詢減去第二個查詢消除...

SELECT DISTINCT qryMissedOpportunity_ALL_Clients.* 
FROM qryMissedOpportunity_ALL_Clients INNER JOIN qryMissedOpportunity_Exclusions ON 
([qryMissedOpportunity_ALL_Clients].[ClientID] <> [qryMissedOpportunity_Exclusions].[ClientID]) 
AND 
([qryMissedOpportunity_Exclusions].[ClientID] <> [qryMissedOpportunity_Exclusions].[BillingCode]) 

如預期和排除成功的初始查詢工作列出全部命中,但我得到完整的列表w母雞我查詢與上述顯然是錯誤的。任何提示將不勝感激。

編輯 - 兩個地區的查詢

qryMissedOpportunity_ALL_Clients(1)

SELECT MissedOpportunities.MOID, PriceList.BillingCode, Client.ClientID, Client.ClientName, PriceList.WorkDescription, PriceList.UnitOfWork, MissedOpportunities.Qty, PriceList.CostPerUnit AS Our_PriceList_Cost, ([MissedOpportunities].[Qty]*[PriceList].[CostPerUnit]) AS At_Cost, MissedOpportunities.fBegin 
FROM PriceList INNER JOIN (Client INNER JOIN MissedOpportunities ON Client.ClientID = MissedOpportunities.ClientID) ON PriceList.BillingCode = MissedOpportunities.BillingCode 
WHERE (((MissedOpportunities.fBegin)=#10/1/2009#)); 

qryMissedOpportunity_Exclusions

SELECT qryMissedOpportunity_ALL_Clients.*, MissedOpportunity_Exclusions.Exclusion, MissedOpportunity_Exclusions.Comments 
FROM qryMissedOpportunity_ALL_Clients INNER JOIN MissedOpportunity_Exclusions ON (qryMissedOpportunity_ALL_Clients.BillingCode = MissedOpportunity_Exclusions.BillingCode) AND (qryMissedOpportunity_ALL_Clients.ClientID = MissedOpportunity_Exclusions.ClientID) 
WHERE (((MissedOpportunity_Exclusions.Exclusion)=True)); 

一組需要看到的一切,其他需要看到的東西,他們沒有帶deamed作爲「有效」錯失的機會,我們已經看到了它,驗證了爲什麼它存在並且不需要每個月都要批評它。

回答

2

一般來說,你可以做一個左連接和對空比較排除表:

SELECT t1.* FROM t1 LEFT JOIN t2 on t1.id = t2.id where t2.id is null; 

應該是很容易採用這種以你的情況。

+0

這是一個有趣的查詢征服,有點扭曲的數據,這對我很好,thx! – Mohgeroth 2009-10-27 23:48:08

2

看你的查詢重寫使用表的別名,所以我可以讀它...

SELECT DISTINCT c.* 
FROM qryMissedOpportunity_ALL_Clients c 
    JOIN qryMissedOpportunity_Exclusions e 
     ON c.ClientID <> e.ClientID 
     AND e.ClientID <> e.BillingCode 

這個查詢會產生各種各樣的......在qryMissedOpportunity_ALL_Clients每一個行會匹配,並加入的笛卡爾積與qryMissedOpportunity_Exclusions中的每一行,其中ClientIDs 不要匹配...這是你想要的?一般來說,連接條件是基於一個表中的列等於另一個表中的列的值...加入它們不相等的地方是不常見的...

其次,連接條件中的第二個不等式是在相同表(qryMissedOpportunity_Exclusions表)您確定這是你想要的?如果是,它不是一個連接條件,它是一個Where子句的條件...

其次,你的問題提到了兩個查詢,但在yr問題中只有一個查詢(上面)。第二個在哪裏?

+0

我還注意到INNER JOIN,這不會用於排除結果。 – Fionnuala 2009-10-27 23:10:02