2013-04-12 22 views
6

MS Access'te aşağıdaki SQL koduyla aynı sonucu nasıl elde edebilirim? Önceden ...EXCEPT yan tümcesi için erişim yedeği

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); 

Teşekkür EXCEPT maddesini tanımıyor! Amacıyla

cevap

4

Eğer ikincisini koşulları birleştirmek ve olumsuz anlamda EXCEPT kurtulmak için:

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 WHERE NOT EXISTS ({else query}) satırlarını düşünürdüm, ancak bu özel durum için yaklaşımınız çok daha basit. –

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

eşsiz sihirbazı bulmak kullanmak

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

[Buna göre] (http://www.mssqltips.com/sqlservertip/2779/ways-to-compare-and-find-differences-for-sql-server-tables-and-data/) 'EXCEPT makalesi fıkra aynı zamanda sadece bir "NULL" koşulu değil de farklılıklar bulacaktır. – Profex

0

tekabül MS Access> Oluştur>Sorgu Sihirbazı ve aşağıdaki sonucu alırsınız

Birliği i yerine

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

burada değil açık bir örneğidir sorgular alt kullanmanın birliğe birkaç masa kullanılan ayrı Erişim Sorgu olduğunu, ancak iki getirilen tablo ve seçme BİRLİĞİ-ing düşünün, Bu birlikten, belirli bir alan kombinasyonunun 2'den az örneğine sahip çiftler. Bu, her tablonun, alan kombinasyonunda aynı değerlere sahip bir kaydın birden fazla örneğine sahip olduğu anlamına gelir, bu kayıtlar aynıdır ve sonuç kümesinden kaldırılabilir. Olmadığı yerde, bir tabloya özgüdürler, yalnızca diğer tabloyla hiçbir eşleşme bulunmayan seçili tablodaki kayıtları alarak getiriler. Fakir bir adamın "HARİÇ" KW'sine benziyor.

İlgili konular