2017-07-10 15 views
1

私はアクセス、マスターデータ、および現在のデータに2つのテーブルを持っています。 どちらの列にも「キー」という列があります。マスターデータには、「From date」および「To Date」列もあります。現在のデータには「作成日」列があります。私は2つのテーブルを一致させる必要があり、テーブル間のすべての "Key"マッチに対して、作成日を取って、その日付がマスターファイルのToとFromの間にあるかどうかを調べるコードが必要です。作成日が開始日と終了日の間にない場合は、クエリに表示するすべての行が必要です。 これは私がこれまでSQLの二重一致機能と値の取り込み

SELECT 
us.* 
FROM [SAP Data] us 
INNER JOIN [Master Data] uss ON uss.Key = us.Key 

私はこれから移行する方法を見つけ出すと、さらに日数を一致させるために、それを伝えることができず、(このコードは、キータブのテーブル間の一致を引っ張っている)持っているものです日付がマスターファイルの開始日と終了日の間にあるかどうかを確認します。どのように進むことができるかについての指導を受けることができる人はいますか?私はあなただけnot existsたいと思います

+0

サンプル・データ、所望の結果は、ほとんどの質問に歓迎されています。 –

答えて

2

SELECT cd.* 
FROM [Current Data] as cd 
WHERE NOT EXISTS (SELECT 1 
        FROM [Master Data] as md 
        WHERE cd.Key = md.Key AND 
         md.[Creation Date] BETWEEN md.FromDate and md.ToDate 
       ); 
+0

ゴードン、私はOPがマスターデータにない「現在のデータ」を望んでいると思います。とにかくそれをどう解釈するのか。 @WEI_DBA。 –

+1

。 。それを指摘していただきありがとうございます。私は同意し、答えを変更しました。 –

+0

@Gordon Linoffが助けてくれてありがとう。サンプルデータを含めないと申し訳ありません。これは間違いなく動作し、実行しようとする場合を除いて必要なもののように見えます。作成日のパラメータ値を入力するように求められます。元の一致した値(両方のテーブルの「キー」一致)から作成日を使用しようとしていました。だから、2つのテーブルに一致し、結果の日付を使用します。それが意味をなさないかどうかわかりません。それができないなら教えてください。英語は私の母国語ではない – KateLO

関連する問題