2017-12-19 26 views
0

これは小さいかもしれませんが、ここで何か不足しています。私が唯一たchildID 3を取得する必要があります「完了日を持っている 『ナースT-SQL where句が真である場合にテーブルからレコードを選択しないでください

Select ChildID from [Test] 
where (Eventypecode not in (4923) and DateCompleted is not Null) 

を - 私は、レコードを選択するには、このような表

ChildID EventTypeCode EventypeDescription DateCompleted 
1   4923   HOME VISIT - NURSE 8/22/2016 
1   4954   DEV TEST DONE   8/11/2016 
1   4976   Child Program   8/22/2016 
2   4923   HOME VISIT - NURSE 9/22/2016 
2   4954   DEV TEST DONE   9/11/2016 
2   4976   Child Program   9/22/2016 
3   4954   DEV TEST DONE   10/22/2016 

私の基準は、ホームビジット』というタイトルなしイベント・コード」ではありません持っていますそれでも私は子供1,2を得ています。私はEventTypeCodeを入れてチェックしたところ、他のイベントタイプコード(4954と4976)に対してChildIDの1と2を選択していました 4923 Eventypeのレコードが1つあれば、レコードは必要ありません。 、あなたは時に任意任意たchildIDを返すようにしたくないです

SELECT distinct childid 
FROM [Test] 
WHERE childid NOT IN (SELECT childid FROM [Test] WHERE EventTypeCode = 4923 OR DateCompleted IS NULL); 

:私はあなたのような何かをしたいと思います

+1

要件が「イベントコード4923でなく、DateCompletedがnullでない」場合、そのイベントコードが4923のときにChildID 3を取得すると思われる理由は何ですか? –

+0

本当に申し訳ありません。 – Hanu

答えて

0

質問
明確ではないでしょうか?

SELECT distinct childid 
FROM [Test] 
WHERE childid NOT IN (SELECT childid 
         FROM [Test] 
         WHERE EventTypeCode = 4923 
         AND DateCompleted is not Null); 
2

をうまくいかなかった存在NOT INとNotサブクエリを試してみました

そのレコードのレコードには4923またはNULLの日付があります。サブクエリでそのロジックを実行する必要があります。

SQLFiddle here

+0

子どものレコード1と2を取得しようとしました – Hanu

+0

これは私にとってはうまくいくようです - 私は試してみましたが、childIDが3の単一の行しか持っていませんでした。これは問わないでしょう。 *あなたの条件を満たしていないchildIDのリストを作成し、それらのIDを別のリストから除外します。 – Greenspark

+0

私のためにうまく動作します。http://sqlfiddle.com/#!6/dfcc4/1 – JNevill

関連する問題