2013-07-19 21 views
1

如果在表「b」的兩個字段中找不到匹配項,我只想選擇表「a」中的記錄。我已經提出了以下內容,但它只是返回所有記錄。代碼看起來很簡單,Access不正確地處理SELECT 1函數還是我沒有正確使用它?感謝您的幫助。只有在tbl2中的字段不匹配時纔在tbl1中選擇

SELECT a.[Part Number], 
     a.[Company Name], 
     a.[Customer Name], 
     a.[Customer Number], 
     a.[Salesperson Initials], 
     a.[Date Received], 
     a.Quantity, 
     a.ExtCost, 
     a.ExtPrice, 
     a.[Gross Margin] 
FROM [1: Orders in the period] As a 
WHERE EXISTS (SELECT 1 
       FROM [Price Adjustments New Gross Margin] As b 
       WHERE b.[Part Number]<>a.[Part Number] AND b.[Customer Name]<>a.[Customer Name]); 

回答

1

LEFT JOIN ab並只返回行,其中的bIs Null

SELECT a.[Part Number], 
     a.[Company Name], 
     a.[Customer Name], 
     a.[Customer Number], 
     a.[Salesperson Initials], 
     a.[Date Received], 
     a.Quantity, 
     a.ExtCost, 
     a.ExtPrice, 
     a.[Gross Margin] 
FROM 
    [1: Orders in the period] AS a 
    LEFT JOIN [Price Adjustments New Gross Margin] AS b 
    ON 
      a.[Part Number]=b.[Part Number] 
     AND a.[Customer Name]=b.[Customer Name] 
WHERE b.[Part Number] Is Null; 

如果你願意堅持使用EXISTS,我想這可能會得到你想要的。

WHERE NOT EXISTS 
    (
     SELECT 1 
     FROM [Price Adjustments New Gross Margin] AS b 
     WHERE 
       b.[Part Number]=a.[Part Number] 
      AND b.[Customer Name]=a.[Customer Name] 
    ); 
+0

LEFT JOIN工作得很好。謝謝! –

相關問題