获取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
来存储日期?得到预期结果的逻辑是什么?肯·怀特…。你能给我一个查询,如果它不是复杂的数据获取?这不是一个做我的家庭作业网站。也许你和你的家人应该一起工作。看来他们在任务上比你走得更远。请再次阅读我之前的评论。忽略“如果不是家庭作业”这句话,因为它显然是家庭作业。