0

私はクエリの大きな挑戦に苦労しています。私は2つのテーブルを持っています、最初は

Tb1 drID schedDate rteID

2番目は:

Tb2 drIDFNameLNameアクティブ

Tb1 drIDは、Nullまたは空白をチェックし、schedDateで一致する必要があります。また、drIDは、選択した日付のTb2.drIDと一致する値を持つことはできません。これらをチェックすると、基本的にこれが行われます。

SELECT drID, schedDate, rteID
FROM            Tb1
WHERE        (drID IS NULL OR drID = '') AND (schedDate = 11 / 1 / 2012)

これらすべてから、TB2 drID、Fname、LNameから戻る必要があります。Active= Trueであり、drIDは、選択したschedDateのtb1のどのレコードにも存在しません。

可能な日付には多くのtb1rteIDレコードがあります。

これと巨大な休日のおかげで助けてくれてありがとう。

4

1 に答える 1

1

たとえば、selectステートメントをサブクエリにすることはできますか?

SELECT drID, Fname, LName
FROM   TB2
WHERE  Active = True 
 AND   drID NOT IN (
       SELECT drID
       FROM   Tb1
       WHERE  (drID IS NULL OR drID = '')
        AND  (schedDate = 11 / 1 / 2012)
       )

編集
schedDateがnullの場合を処理するには、

SELECT drID, Fname, LName
FROM   TB2
WHERE  Active = True 
 AND   drID NOT IN (
       SELECT drID
       FROM   Tb1
       WHERE  (drID IS NULL OR drID = '')
        AND  (schedDate = @yourDate OR schedDate IS NULL)
       )

編集
2drIDがnullの場合を処理するには、NOTINとNOTEXISTSに関するこのSO投稿で強調表示されているアプローチを使用できますNOT EXISTS

SELECT drID, Fname, LName
FROM   TB2
WHERE  Active = True 
 AND   NOT EXISTS (
       SELECT drID
       FROM   Tb1
       WHERE  (schedDate = @yourDate) 
        AND   Tb1.drID = TB2.drID
       )
于 2012-12-21T15:42:22.537 に答える