0

私は以下のように2つのテーブルを持っています..

  1. tbPatientEncounter
  2. tbバウチャー

select query以下のように実行すると

Select EncounterIDP,EncounterNumber from tbPatientEncounter

ここに画像の説明を入力

それは私に180行を返します。と

tbVoucher から VoucherIDP、EncounterIDF を選択

ここに画像の説明を入力

上記のクエリは 165 行を返します。

しかし、私は tbVoucher にない EncounterIDP のようなデータを返す選択クエリを実行したいので、選択クエリの下で試しました...

    Select * from tbPatientEncounter pe 
    where pe.EncounterIDP not in 
    (Select v.EncounterIDF from tbVoucher v )

行は返されません。最初の画像では表示EncounterIDP 9 in tbPatientEncounterされますが、tbVoucher に挿入されていないため、次のようなクエリを選択しようとしました

Select * from tbVoucher where EncounterIDF = 9 

それは私に0行を返します。

私の質問はwhat is wrong with my above Not In Query.?

4

3 に答える 3

2

tbVoucher の正しいフィールドを比較していますか?

左結合を使用してみてください

Select EncounterIDP,EncounterNumber from tbPatientEncounter
       left join tbVoucher on EncounterIDP = EncounterIDF
where EncounterIDF is null
于 2013-08-24T09:36:01.630 に答える
2

おそらく、問題は のNULL値ですtbVoucher。これを試して:

Select *
from tbPatientEncounter pe 
where pe.EncounterIDP not in (Select v.EncounterIDF
                              from tbVoucher v
                              where v.EncounterIDF is not NULL
                             )
于 2013-08-24T11:52:29.180 に答える
0

あなたの質問に何の問題も見当たらないので、私を懐疑論者と呼んでください。これは本当にすべてクエリに含まれているのでしょうか、それとも単純化してくれましたか?

Select * from tbPatientEncounter pe 
where pe.EncounterIDP not in 
(Select v.EncounterIDF from tbVoucher v )
于 2013-08-24T17:45:19.707 に答える