したがって、主キー、説明、および更新日の列を格納する参照テーブルがあります。このようなもの
SELECT * FROM tblReasonRef
ReasonCode Description UpdateDate
27 Lunch 2010-12-01
24 Meeting 2010-12-01
20 SpecialProj 2010-12-01
先日、コード記述が変更されました。したがって、クエリは次を返します...
ReasonCode Description UpdateDate
27 Lunch 2010-12-01
24 Meeting 2010-12-01
20 SpecialProj 2010-12-01
27 Training 2012-06-22
24 Meeting 2012-06-22
20 Lunch 2012-06-22
ソース データは、スタッフ メンバーがどのような状態になるかを 30 分ごとに追跡するため、次のクエリを使用します...
SELECT * FROM tblhActivity
MemberID Date Time ReasonCode ReasonDuration
10922 2012-06-21 1200 27 100
10922 2012-06-21 1500 24 1800
10922 2012-06-25 1230 27 100
もともと、私が持っていたクエリは...
SELECT a.MemberID, a.Date, a.Time, r.Description, a.ReasonDuration
FROM tblhActivity a
INNER JOIN tblReasonRef r ON a.ReasonCode = r.ReasonCode
22日の変更まではうまくいきました。これで、各コードの 2 つの定義ができました。問題は、日付に応じて正しいコードを選択するクエリをどのように作成できるかです。
たとえば、日付が 21 日の場合、コード 27 の説明は昼食になるはずです。25 日に返される説明は Training である必要があります。
これは、コードが参照テーブルに追加された場所で再び発生する可能性があることにも注意してください。結合も UpdateDate にする必要があると考えていますが、各参照コードの開始日と終了日を知る必要があります。簡単な解決策はありますか?