获取SQL查询的数据

时间:2018-05-31 00:27:05

标签: sql sql-server

我有以下情况并寻找以下结果作为输出可以帮助我使其成为可能。

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

1 个答案:

答案 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