Обновление столбца даты, чтобы он соответствовал предыдущему столбцу, чтобы показать дату совпадения с названием должности - PullRequest
0 голосов
/ 11 октября 2019

Я работаю в юридической фирме, и некоторые дела могут занимать годы, поэтому я ищу создание отчета, который меняет должность человека, который получает повышение в должности по делу.

Использование следующего руководства Выбрать внутри 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

1 Ответ

0 голосов
/ 16 октября 2019

Спасибо Avery_larry

SELECT max(Ts.CHANGE_DATE) FROM #TmpStaff Ts WHERE Ts.[Year] <= (YEARDESC) AND (FE_CODE = Ts.EARNERCODE)` 

Было именно то, что нужно

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...