2017-02-01 6 views
0

は私が私が参加やろうとしている2つのテーブルを持っている....私のテーブルの構造は次のようになり、一致するレコードがないところ...二つのテーブルに参加 - 表示データを

tbl1 
NoClient   ApptDate   Status   
1234    12/22/2016  A 
3555    1/23/2017  A 
3495    12/23/2016  A 


tbl2 
NoClient   ApptDate 
1234    12/22/2016 
3555    1/24/2017 

私はこの2つのテーブルをNoClientApptDateに参加させようとしています。 tbl2ApptDateNoclient

この場合

所望の最終結果

NoClient  AppDate 
3555   1/23/2017   
3495   12/23/2016  

NoClient = 3555に一致するレコードは、対応するレコード内を持っていないがある -

私の目標はtbl1からすべてのレコードを確認することですtbl2ただし、ApptDateは同じではありません。 NoClient = 3495には、対応するレコードがすべて一緒にありません。

答えて

2

あなたはこのためLEFT OUTER JOINを使用することができます。

Select  T1.NoClient, T1.ApptDate 
From  Tbl1 T1 
Left Join Tbl2 T2 On T1.NoClient = T2.NoClient 
         And T1.ApptDate = T2.ApptDate 
Where  T2.NoClient Is Null 

また、あなたはまた、使用することができWHERE NOT EXISTS

Select T1.NoClient, T1.ApptDate 
From Tbl1 T1 
Where Not Exists 
(
    Select * 
    From Tbl2 T2 
    Where T1.NoClient = T2.NoClient 
    And  T1.ApptDate = T2.ApptDate 
) 
+0

私はあなたの最初のクエリが、OPが望むものと反対のもの、つまり一致するレコードを返すと信じています。 – Tricky12

+0

@ Tricky12 'どこにT2.NoClient Is Null 'は一致するものを除外します。 – Siyual

+0

ええ、それは私が最初にそれを見たときにそれを後方に考えていたことです。 – Tricky12

1

私は、これはあなたが探しているものだと思います。 ( をEXISTS NOT((Table1.NoClient = Table2.NoClient)表2

SELECT * FROM AND(Table1.ApptDate = Table2.ApptDate)))

表1

FROM

SELECT *

関連する問題