2013-04-12 22 views
6

Làm cách nào tôi có thể nhận được cùng một kết quả tôi sẽ nhận được với mã SQL bên dưới trong truy cập ms? Nó không nhận ra mệnh đề EXCEPT ...Truy cập thay thế cho mệnh đề EXCEPT

SELECT DISTINCT 
     P.Name, 
     T.Training 
    FROM Prof AS P, 
     Training_done AS TC, 
     Trainings AS T 
WHERE (P.Name Like '*' & NameProf & '*') 
    AND (P.Primary_Area = T.Cod_Area) 
EXCEPT 
SELECT DISTINCT 
     P.Name, 
     T.Training 
    FROM Prof AS P, 
     Training_done AS TC, 
     Trainings AS T 
WHERE (P.Name Like '*' & NameProf & '*') 
    AND (P.Cod_Prof = TC.Cod_Prof); 

Cảm ơn bạn trước!

Trả lời

4

Để thoát khỏi EXCEPT bạn có thể kết hợp các điều kiện và phủ nhận thứ hai:

SELECT DISTINCT 
     P.Name, 
     T.Training 
    FROM Prof AS P, 
     Training_done AS TC, 
     Trainings AS T 
WHERE ((P.Name Like '*' & NameProf & '*') AND 
     (P.Primary_Area = T.Cod_Area)) 
    AND NOT ((P.Name Like '*' & NameProf & '*') AND 
      (P.Cod_Prof = TC.Cod_Prof)); 
+1

+1 Tôi đã suy nghĩ dọc theo dòng chữ 'KHÔNG CÓ DANH SÁCH ({except query}) 'nhưng cách tiếp cận của bạn đơn giản hơn nhiều đối với trường hợp cụ thể này. –

3
SELECT A.x FROM A 
EXCEPT 
SELECT B.x FROM B 

tương ứng với

SELECT A.x FROM A 
LEFT JOIN B 
ON A.x = B.x 
WHERE B.x IS NULL 
+2

Theo [this] (http://www.mssqltips.com/sqlservertip/2779/ways-to-compare-and-find-differences-for-sql-server-tables-and-data/) bài viết 'EXCEPT 'mệnh đề cũng sẽ tìm thấy sự khác biệt, không chỉ là điều kiện' NULL'. – Profex

0

sử dụng tìm chưa từng có thuật sĩ trong MS Access> Tạo>Trình hướng dẫn truy vấn và bạn sẽ nhận được kết quả sau

Liên minh là một Query truy cập riêng biệt mà tôi sử dụng để kết hợp một vài bảng thay vì sử dụng phụ truy vấn

SELECT TableMain.Field1 
FROM TableMain LEFT JOIN [Union] ON TableMain.[Field1] = Union.[field1] 
WHERE (((Union.field1) Is Null)); 
0

Không một ví dụ rõ ràng ở đây, nhưng xem xét UNION-ing hai bảng lấy và chọn, từ công đoàn đó, các cặp có ít hơn 2 trường hợp của một tổ hợp trường nhất định. Điều này ngụ ý rằng, trong đó mỗi bảng có nhiều bản sao của một bản ghi có cùng giá trị trên kết hợp trường, các bản ghi này giống nhau và có thể được loại bỏ khỏi tập kết quả. Trường hợp không, chúng là duy nhất cho một bảng, để lại tìm nạp chỉ với các bản ghi từ bảng đã chọn, nơi không có kết quả phù hợp với bảng khác. Loại giống như "EXCEPT" KW của người đàn ông nghèo.

Các vấn đề liên quan