我正在尝试进行审计,将当天的实际汇率与当天应支付的历史汇率进行比较。
我创建了一个临时表来从历史中获取所需的信息,并将其称为 PPDAUDIT。这是审计 SQL
SELECT EMPLOYEE, PAY_SUM_GRP, HOURS, RATE, TR_DATE, DATE, CORRECT_RATE
FROM
(
SELECT A.EMPLOYEE
, A.PAY_SUM_GRP
, A.HOURS
, A.RATE
, A.TR_DATE
, A.DATE
, CASE
WHEN (MAX((B.BEG_DATE) < A.TR_DATE))
AND B.FLD_NBR = '730'
THEN B.N_VALUE/C.ANNUAL_HOURS
END AS 'CORRECT_RATE'
FROM `PPDAUDIT` AS A
INNER JOIN `[dbo]_[hrhistory]` AS B ON B.EMPLOYEE = A.EMPLOYEE
INNER JOIN `[dbo]_[employee]` AS C ON C.EMPLOYEE = A.EMPLOYEE
WHERE A.RATE <> (B.N_VALUE/C.ANNUAL_HOURS)
) AS D
WHERE CORRECT_RATE IS NOT NULL
我期望得到的是当时较少但最接近交易日期的历史记录,然后只得到那些历史和过渡不匹配的记录。它拉的是第二接近的。
示例:如果交易发生在 2012 年 1 月 1 日,并且在 2011 年 12 月 31 日、2011 年 10 月 10 日和 2011 年 7 月 24 日有历史记录,则它会在 10 月 10 日而不是 12 日提取附加到历史记录的汇率/31 这是必需的。