2017-09-07 3 views
0

我々はしたい行(チャートは、患者を意味する)20170301いるのでここではなかったが、我々は患者さんではなかった人々がいる我々のシステムでは2016年、多くのレコードの前にここにいた人たちを見てみたいこととても長い間。見つからない活動的な患者

私は「存在しない」追加しましたが、これはすべてのレコードを返しません。

SELECT chart 
FROM [Dentrix].[dbo].[DDB_APPT_BASE] where APPTDATE > '20160101' 
     and not exists 
     (SELECT app.APPTDATE FROM [Dentrix].[dbo].[DDB_APPT_BASE] as app 
     WHERE app.APPTDATE > '20170301') 

答えて

0

言い換えするには、あなたの目標は2016年1月1日後に予定していた(患者を表す)のチャートを返すことですが、3月1日後の予定を持っていなかった、2017年問題は、あなたの「であり、存在しない "というフレーズ。これにより、すべてのチャートの予定の日付が返されます。代わりに、あなたは2017年

Select ab.chart 
From [Dentrix].[dbo].[DDB_APPT_BASE] ab 
Where ab.APPTDATE > '20160101' 
And ab.chart not in 
     (Select app.chart 
     From [Dentrix].[dbo].[DDB_APPT_BASE] as app 
     WHERE app.APPTDATE > '20170301') 

これらcomparisionsはあなたが使用して検討する必要があります3月1日と1月1日の排他的であることに注意してください、3月1日後に予定してチャートのリストを返したい> =含めることこれらの日付。

0

あなたは自分のサブクエリに1行を追加する必要があります。つまり、メインクエリのグラフがサブクエリのグラフと一致することを確認します。そうしないと、あなたはリンゴとオレンジを混合されています

SELECT DISTINCT chart 
FROM [Dentrix].[dbo].[DDB_APPT_BASE] as a 
WHERE a.APPTDATE > '20160101' 
AND NOT EXISTS 
(SELECT 1 
FROM [Dentrix].[dbo].[DDB_APPT_BASE] as b 
WHERE b.APPTDATE > '20170301' 
AND a.chart = b.chart) 
関連する問題