Как вы упомянули сценарий, ваш ожидаемый результат будет неправильным. потому что вы заметили, что 01 |01/07/2019 |СТАРШИЙ ЭТО |HQ | Величайшая дата будет там. в любом случае, я просто попробую в качестве примера и хочу поделиться с вами ..
Таким образом, ваш ожидаемый результат будет:
ID |Effective_dt |Рабочее место |01 |01/07/2019 |HQ |02 |01.02.2009 |HQ |
DECLARE @TEMP AS TABLE
(
EMP INT,
EFFECTIVE_DT DATE,
POSITION VARCHAR(20),
WORKLOCATION VARCHAR(50) NULL
);
INSERT INTO @TEMP (EMP,EFFECTIVE_DT,POSITION,WORKLOCATION)VALUES
(01 ,'01/01/2019','IT SUP','BRANCH'),
(01 ,'01/06/2019','IT SUP','HQ'),
(01 ,'01/07/2019','IT SUP','HQ'),
(02 ,'01/02/2019','IT SUP','HQ');
SELECT
DISTINCT(EMP),
MAX(EFFECTIVE_DT) AS EFFECTIVE_DT
INTO #TEMP
FROM @TEMP
GROUP BY EMP
SELECT
TMP.EMP,
TMP.EFFECTIVE_DT AS Effective_dt,
WORKLOCATION AS Worklocation
FROM #TEMP TMP
INNER JOIN @TEMP TMP1 ON TMP1.EMP = TMP.EMP AND TMP1.EFFECTIVE_DT = TMP.EFFECTIVE_DT
ORDER BY TMP.Effective_dt DESC
Надеюсь, это поможет вам ..