あなたは本当に交差する必要はありませんし、あなたが探しているものを除いては必要ありませんが、あなたはこの方法でそれを行うことができます。
SELECT Encounter.EncounterNumber, substring(Encounter.EncounterNumber,4,9) as Acct,
MedicalRecordNumber, [AdmitDate - CCYYMMDD] as AdmitDate, [DischargeDate - CCYYMMDD] as
DischDate, DischargeDisposition, Encounter.Age, EnctrAPR.APRDRG, Age18, Age18To64, Age65
from Encounter
full outer join EnctrAPR on
substring(Encounter.EncounterNumber,4,9) = EnctrAPR.EncounterNumber
where HSP# = 1
and InOutCode = 'I'
and ActualTotalCharge >0
and AdmitSubService <> 'SIG'
and [DischargeDate - CCYYMMDD] between @StartDate and @EndDate
and Encounter.Age >= 18
INTERSECT -- OR EXCEPT
SELECT Encounter.EncounterNumber, substring(Encounter.EncounterNumber,4,9) as Acct,
MedicalRecordNumber, [AdmitDate - CCYYMMDD] as AdmitDate, [DischargeDate - CCYYMMDD] as
DischDate, DischargeDisposition, Encounter.Age, EnctrAPR.APRDRG, Age18, Age18To64, Age65
from EnctrAPR
join Encounter on
substring(Encounter.EncounterNumber,4,9) = EnctrAPR.EncounterNumber
where HSP# = 1
and InOutCode = 'I'
and ActualTotalCharge >0
and AdmitSubService <> 'SIG'
and [DischargeDate - CCYYMMDD] between @StartDate and @EndDate
and Encounter.Age >= 18
この方法でそれを達成することはできますが、私はそれをお勧めしません。それは少しブルートフォースアプローチです。EnctrAPRにあるレコードのみを取得するには、FROM EnctrAPRを変更し、Encounterへの内部結合を使用できます。
SELECT Encounter.EncounterNumber, substring(Encounter.EncounterNumber,4,9) as Acct,
MedicalRecordNumber, [AdmitDate - CCYYMMDD] as AdmitDate, [DischargeDate - CCYYMMDD] as
DischDate, DischargeDisposition, Encounter.Age, EnctrAPR.APRDRG, Age18, Age18To64, Age65
from EnctrAPR
join Encounter on
substring(Encounter.EncounterNumber,4,9) = EnctrAPR.EncounterNumber
where HSP# = 1
and InOutCode = 'I'
and ActualTotalCharge >0
and AdmitSubService <> 'SIG'
and [DischargeDate - CCYYMMDD] between @StartDate and @EndDate
and Encounter.Age >= 18
EnctrAprに存在しないレコードのみを取得するには、左結合を使用します。
SELECT Encounter.EncounterNumber, substring(Encounter.EncounterNumber,4,9) as Acct,
MedicalRecordNumber, [AdmitDate - CCYYMMDD] as AdmitDate, [DischargeDate - CCYYMMDD] as
DischDate, DischargeDisposition, Encounter.Age, EnctrAPR.APRDRG, Age18, Age18To64, Age65
from Encounter
left outer join EnctrAPR on
substring(Encounter.EncounterNumber,4,9) = EnctrAPR.EncounterNumber
where HSP# = 1
and InOutCode = 'I'
and ActualTotalCharge >0
and AdmitSubService <> 'SIG'
and [DischargeDate - CCYYMMDD] between @StartDate and @EndDate
and Encounter.Age >= 18
and EnctrAPR.EncounterNumber IS NULL