【发布时间】:2018-05-05 15:41:42
【问题描述】:
我有两张表看起来像这样:
IMP DATE CAT
A 03/03/2016 1
B 04/04/2016 1
C 09/09/2016 2
D 01/01/2017 1
E 02/02/2017 1
F 03/03/2017 2
G 04/04/2017 2
====================
EXP DATE CAT
H 01/01/2016 1
I 05/05/2016 1
J 07/07/2016 2
K 11/11/2016 2
L 01/01/2017 1
M 03/03/2017 1
N 04/04/2017 2
O 05/05/2017 2
我想将第一个表连接到第二个表,但将第二个表连接的行限制为第一个表上的最新日期(按类别)。
我正在寻找的结果将是两个表中的每一行,除了项目“M”(因为表 1 中的 Cat 1 的最晚日期为 2 月)和项目“O”(因为表 1 中的 Cat 2 有最迟 4 月)。
我已经在第二个表的 where 子句中尝试了条件,但还没有走远。
有没有简单的方法来做到这一点?任何帮助表示赞赏。顺便说一句,我使用的是 SQL Server 2008。
【问题讨论】:
-
我们能看到你目前的查询吗? DATE 列的数据类型是什么?
-
编辑您的问题并提供示例数据和所需的结果。如果您想要两个表中的所有行,为什么要谈论
join? -
结果可以有不同类别的行吗?
标签: sql sql-server sql-server-2008 date join