Я работаю в юридической фирме, и некоторые дела могут занимать годы, поэтому я ищу создание отчета, который меняет должность человека, который получает повышение в должности по делу.
Использование следующего руководства Выбрать внутри CASE THEN
У меня изменилось название должности с годами, но дата изменения названия должности не измениласьобновляется правильно. То, что он делает, берет первую в истории дату изменения и продолжает с тем, что будет, потому что я установил ТОП-1, я уверен, что я хочу знать сейчас, как мне сказать, чтобы он работал со строкой, где название должностии Earnercode совпадает. (Ниже приведен код, который у меня есть)
SELECT
A.STAFF_DIWOR,
DATEPART(YEAR, A.CHANGE_DATE) AS [Year],
DATEPART(MONTH, A.CHANGE_DATE) AS [Month],
A.CHANGE_DATE, A.NEW_TYPE_DIWOR,
B.EARNERCODE, C.CATEGORYDESC
INTO
#TmpStaff
FROM
STAFF_CHANGE_HISTORY A
LEFT JOIN
STAFF B ON A.STAFF_DIWOR = B.DIWOR
LEFT JOIN
EMPLOYEE_CATEGORY C ON C.DIWOR = A.NEW_TYPE_DIWOR
WHERE
CHANGE_TYPE = 'EMP'
AND CATEGORYDESC <> 'Leavers'
SELECT
A.MATTER_CODE, A.FE_CODE, A.FE_NAME,
B.YEARDESC, A.PERIOD, CHRG_HRS_YTD,
(SELECT TOP 1 Ts.CATEGORYDESC FROM #TmpStaff Ts
WHERE Ts.[Year] <= (YEARDESC) AND (FE_CODE = Ts.EARNERCODE)) AS STAFF_GRADE,
(SELECT TOP 1 Ts.CHANGE_DATE FROM #TmpStaff Ts
WHERE Ts.[Year] <= (YEARDESC) AND (FE_CODE = Ts.EARNERCODE)) AS ChangeDate --This is not updating with the correct date
FROM
on_mat_fe_PERF A
JOIN
PM_YEAR B ON A.FINYEARDIWOR = B.DIWOR
WHERE
A.MATTER_CODE = @Matter
Я пытался изменить год на CategoryDesc = CategoryDESC, но это не сработало.
Редактировать :
Чтобы дать представление о том, что я ищу, это то, что он в настоящее время предоставляет
Solicitor Newly Qualified 2018-05-03 09:15:16.100
Solicitor 1+ 2018-05-03 09:15:16.100
, и это то, что я хочу получить от него
Solicitor Newly Qualified 2018-05-03 09:15:16.100
Solicitor 1+ 2019-07-27 09:30:16.100