Access 2010:JOIN表并返回最新记录

时间:2014-04-28 16:56:14

标签: sql ms-access join ms-access-2010

我试图找出如何从以下方面获得正确的结果。

我正在尝试创建一个Access查询,该查询采用相关人员费率从时间表数据计算员工的成本。以下是时间数据的示例:

ID   EmpNo   Period_Month  Period_Year   CostCode   Workstage   Line_Hours
14   11486   3             2014          C10798     000         20.00
15   11486   3             2014          C10657     000         21.50
16   11486   3             2014          C11112     000         10.00

对于此员工,可能会在不同时期设置费率:

EmpNo   Period_Month  Period_Year  Rate
11486   1             2014         10.00
11486   3             2014         12.00
11486   6             2014         15.00

我想知道如何加入这两个表来计算成本(小时*费率)并选择正确的费率。费率从加盖后的时间段开始生效,直到输入新的费率为止。通常在SQl中我通过在连接中取得嵌入式选择的顶部项来做到这一点,但我似乎无法在Access中执行相同的操作。我还读到我可以在费率表上连接两次以获取我需要的人员费率表中的项目,但似乎无法对此应用相同的逻辑。

更新

根据要求,以下是我查询的内容。它让我了解当前和以前各个时期的所有费率,但我无法找到一种方法来获得最高价。

SELECT t.EmpNo, t.CostCode, t.Workstage, t.TimeCode_Desc, t.Line_Hours, t.Period_Month,   t.Period_Year, srA.Rate
FROM (tblTime AS t LEFT JOIN qryTotalHours AS hrs ON (t.Period_Year = hrs.Period_Year) AND (t.Period_Month = hrs.Period_Month) AND (t.EmpNo = hrs.EmpNo)) LEFT JOIN tblStaffRates AS srA ON t.EmpNo = srA.EmpNo
WHERE (((t.Period_Month)>=[srA].[Period_Month]));

0 个答案:

没有答案