我有以下情况并寻找以下结果作为输出可以帮助我使其成为可能。
CREATE TABLE ##RUN_ID
(
RUN_ID INT,
EMPID INT,
STARTDT VARCHAR(10),
VAL CHAR(1)
);
INSERT INTO ##RUN_ID (...)
VALUES (1, 1, '1/1/2018', 'A'), (2, 1, '2/1/2018', 'A'),
(3, 1, '12/1/2017', 'A'), (4, 1, '3/1/2018', 'A'),
(5, 1, '2/1/2018', 'A')
SELECT * FROM ##RUN_ID
输出:
RUN_ID EMPID STARTDT VAL
------ ----- --------- ---
3 1 12/1/2017 A
5 1 2/1/2018 A
答案 0 :(得分:0)
如果我理解正确,你想要基于year
的最新run_id,如果是这样,那么你可以使用correlation
方法:
SELECT r.*
FROM RUN_ID r
WHERE run_id = (SELECT MAX(r1.run_id)
FROM RUN_ID r1
WHERE YEAR(r.STARTDT) = YEAR(r1.STARTDT)
);
请参阅Demo