3

全て、

1つはEmployeeを呼び出し、もう1つはTargetRatioを呼び出す2つのテーブルがあります。それらはFKEmployeeIDを介して関連付けられています

tblEmployee
EmployeeID FirstName LastName
1              John     Doe

tblTargetRatio
TargetRatioID EmployeeID EffectiveDate Ratio
      1            1        1/1/2012     8
      2            1        6/1/2012     5
      3            1        9/1/2012     7

私の質問は、次の場合に正しいレコードを返すためにtblTargetRatioテーブルをクエリする方法です。

1 EmployeeID = 1 and Date = 03/12/2012 (Expecting Ratio = 8)
2 EmployeeID = 1 and Date = 10/10/2012 (Expecting Ratio = 7)
3 EmployeeID = 1 and Date = 08/12/2012 (Expecting Ratio = 5)

ありがとう、アラン

4

1 に答える 1

2

最新の発効日を探しているようです。@Dateこれを行うには、検索対象の値(検索対象の日付はどこですか)よりも小さい最大値を探します。

select top 1 * from tblTargetRatio
where employeeid = 1 and effectivedate < @Date
order by effectivedate desc

デモ:http ://www.sqlfiddle.com/#!3 / f6d4b / 2

于 2012-11-15T22:39:07.713 に答える