Я пытаюсь получить записи сотрудников с 01.01.19.Я присоединяю таблицу истории сотрудников к таблице сведений о коде работы.Для каждой записи сотрудника я хочу сопоставить детали кода работы на дату вступления в силу записи сотрудника.Так что, если бы 1/19/19 была запись сотрудника, я хотел бы, чтобы детали кода работы были эффективными в то время;и для этого, чтобы не тянуть в верхней части стека детали кода работы, который, возможно, изменился с 1/2/19.У меня проблемы с правильным кодированием.
Я попробовал приведенный ниже код, но не уверен, что он правильный.Я присоединился к таблице J2 для другого отчета, который я сделал для извлечения записи кода задания вершины стека (т. Е. WHERE J2.EFFDT = NULL).Не уверен, нужно ли что-то подобное использовать для моего текущего запроса, и как это следует включить в инструкцию WHERE.
SELECT
E.EMPLID AS [EE ID]
,E.Name AS [Name]
,E.EFFDT AS [Eff Date]
,E.COMPANY AS [Co.]
,E.JOBCODE AS [Job Code]
,E.JOBTITLE [Title]
,J.GRADE AS [MRR]
,J.BONUS AS [Bonus]
,J.OCC_TYPE AS [OCC]
,E.EMPL_STATUS_DESC AS [Status]
FROM Employee History AS [E]
LEFT JOIN JobCodeTable AS [J]
ON E.JOBCODE = J.JOBCODE
LEFT JOIN JobCodeTable AS [J2]
ON (
J.JOBCODE = J2.JOBCODE
AND
J.EFFDT < J2.EFFDT
)
WHERE E.EMPL_STATUS_DESC = 'Active'
AND
E.EFFDT >= '2019-01-01'
AND
E.EFFDT >= J.EFFDT
Пример результатов будет ниже.Это тянет все записи сотрудников для Джейн Доу и Джона Смита с 01.01.19.В этом примере для каждого из их кодов заданий были выполнены обновления в таблице сведений о кодах заданий.MRR и бонус Джейн, приложенные к ее коду работы, были обновлены в таблице с подробным описанием кода работы с 1 января 19 года.MRR и бонус Джона, приложенные к его коду работы, были обновлены в таблице с подробным описанием кода работы, вступившей в силу 2/10/19.При извлечении записи о сотруднике результаты должны извлекать MRR и бонус, которые действовали на указанную дату.
Таблица истории сотрудников
EE ID || Name || Eff Date || Co. || Job Code || Title || Status
12345 || Jane Doe || 5/12/2019 || Apple || A9999 || VP || Active
12345 || Jane Doe || 2/1/2019 || Apple || A9999 || VP || Active
54321 || John Smith || 6/5/2019 || Apple || A0002 || Mgr || Active
54321 || John Smith || 4/29/2019 || Apple || A0002 || Mgr || Active
54321 || John Smith || 1/12/2019 || Apple || A0002 || Mgr || Active
Подробная таблица кодов работ
Job Code|| Title || Eff Date || MRR || Bonus || OCC
A9999 || VP || 4/1/2019 || 5 || 25% || E
A9999 || VP || 1/12/2019 || 4 || 20% || E
A0002 || Mgr || 2/10/2019 || 3 || 15% || E
A0002 || Mgr || 11/01/2018 || 2 || 10% || E
Что должен извлечь отчет
EE ID || Name || Eff Date || Co. || Job Code || Title || MRR|| Bonus || OCC || Status
12345 || Jane Doe || 5/12/2019 || Apple || A9999 || VP || 5 || 25% || E || Active
12345 || Jane Doe || 2/1/2019 || Apple || A9999 || VP || 4 || 20% || E || Active
54321 || John Smith || 6/5/2019 || Apple || A0002 || Mgr || 3 || 15% || E || Active
54321 || John Smith || 4/29/2019 || Apple || A0002 || Mgr || 3 || 15% || E || Active
54321 || John Smith || 1/12/2019 || Apple || A0002 || Mgr || 2 || 10% || E || Active