我有,我想象的是标准的 SQL 设计模式。我有两个要加入的表。一个有一个日期,另一个有一个生效日期,我想要第二个表的最后一条记录,其生效日期小于或等于第一个表的日期。
我现在使用的查询类似于:
SELECT *
FROM Timecard
LEFT JOIN Employee_Rate on Timecard.Employee=Employee_Rate.Employee
AND Employee_Rate.Effective_Date =
(
SELECT MAX(Effective_Date)
FROM Employee_Rate rate2
WHERE Employee_Rate.Employee=rate2.Employee
AND rate2.Effective_Date <=Timecard.Timecard_Date
)
这工作得很好,我已经这样做了一段时间。但我想知道是否有更有效的方法来做到这一点。我正在尝试提高几个非常复杂的查询的性能。
我正在使用 SQL Server。