获取SQL查询的数据

获取SQL查询的数据,sql,sql-server,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', '

我有下面的场景,并期待以下结果作为输出可以有人帮助我使之成为可能

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

如果我理解正确,您需要基于
年份的最新运行id
如果是,那么您可以使用
相关性
方法:

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)
               );

请参见

欢迎使用堆栈溢出。这不是家庭作业完成服务。你的导师给了你作业,而不是我们,你需要做你自己的工作。如果我们为你做,你什么也学不到。如果你不能开始,向你的老师寻求帮助;他们被雇来教你。祝你好运(如果不是家庭作业,那就找一个SQL教程。这是一个非常基本的选择,任何教程都可以教你怎么做。)你为什么要用
varchar
来存储日期?得到预期结果的逻辑是什么?肯·怀特…。你能给我一个查询,如果它不是复杂的数据获取?这不是一个做我的家庭作业网站。也许你和你的家人应该一起工作。看来他们在任务上比你走得更远。请再次阅读我之前的评论。忽略“如果不是家庭作业”这句话,因为它显然是家庭作业。