2つのテーブル(data2002.dbo。tblCrewとeds.dbo。tblpms )があり、メインテーブルとしてtblCrewが使用されています。tblpmsの主キーはすべてtblCrew(メイン)に存在することに注意してください。tblCrewからのデータがtblpmsに存在するかどうかを確認したいのですが、存在する場合は、tblCrewからの特定の日付とtblpmsからの別の日付の差を取得する必要があります。しかし、それが存在しない場合は、tblCrewからの日付と今日の日付の違いが必要です。
私はここで私の質問で立ち往生しています:
SELECT t1.CaseNo, t1.LastName + ', ' + t1.FirstName as fname
, case
when (t2.med_stat <> 'Fit To Work' and t2.med_stat <> 'Deceased'
and t2.med_stat <> 'Reached Maximum Medical Cure'
and t2.med_stat <> 'Stop Treatment')
then datediff(day,cast(t1.DatePIConsult as datetime), getdate())
else
datediff(day,cast(t1.DatePIConsult as datetime),cast(t2.med_stateff as datetime)) end as
TreatmentDays
from data2002.dbo.tblCrew as t1
join eds.dbo.tblpms as t2
on t1.CaseNo COLLATE DATABASE_DEFAULT = t2.CaseNo COLLATE DATABASE_DEFAULT
これは私にこの結果をもたらします(これは私が期待したものではありません):
CaseNo Name Days
AM06-009-CRW VILLARINO, RICHARD
BLB13-014-CRW ARQUISOLA, REDEN
JPI12-028-CRW OBENQUE, JOSE
JPI12-037-CRW TARRO, ANGELO
JPI12-039-CRW DELA CRUZ, FELICIANO 121
NOE12-205-CRW CLAVIO, RAYMUND
NOE12-205-CRW CLAVIO, RAYMUND
私はこれのようにもっと期待していました(サンプル):
CaseNo Name Days
BM07-029-CRW ASASPOK, RICH 119
CLC14-014-CRW QDASF, READS 115
私が(@ _ @を期待して)達成したいことは、以下に指定されています):
a。表1に20行、表2に10行ある場合。table2からではなく(table1に基づいて)20行で結果を取得できますか(table1には常にtable2よりも多くのデータがあるため)。
b。また、クエリを追加して、個別のCaseNoと、3番目の列がnullでない場合のみを表示したいと思います。
c。もう1つの基準は、3番目の列の値が109〜121(実際の値= 110〜120)の場合のみです。
あなたがこれで私を助けることができることを願っています..事前にどうもありがとう