【发布时间】:2015-06-29 03:38:50
【问题描述】:
我有两张桌子。第一个:
col1 | col2 | ColumnOfInterest | DateOfInterest
--------------------------------------------------------
abc | def | ghi | 2013-02-24 17:48:32.548
.
.
.
第二个:
ColumnOfInterest | DateChanged | col3 | col4
--------------------------------------------------------
ghi | 2012-08-13 06:28:11.092 | jkl | mno
ghi | 2012-10-16 23:54:07.613 | pqr | stu
ghi | 2013-01-29 14:13:18.502 | vwx | yz1
ghi | 2013-10-01 14:17:32.992 | 234 | 567
.
.
.
我要做的是在 ColumnOfInterest 上的两个表之间进行 1:1 连接,以便 DateOfInterest 反映第二个表中的日期。
也就是说,第一个表的行将连接到第二个表的第三行。
你有什么想法吗?
谢谢
【问题讨论】:
-
所以您试图从 DateChanged 列中为每个不同的 ColumnOfInterest 获取最大日期?
-
嗯,不是最大日期...您可以看到第二个表是一种历史表,所以我需要一个与第一个表的 DateOfInterest 相关的行...希望有意义
-
你想要的输出是什么?
-
基本上两个表中的所有列,没有重复我加入的列
-
例如,第二个表是价格变化及其生效日期的列表,您希望在第一个表中找到对特定日期有效的价格。或者,换一种说法,对于给定的
DateOfInterest,您希望DateChanged匹配或紧接在它之前,对吧?提示:使用适当的软件(MySQL、Oracle、DB2 等)和版本标记数据库问题很有帮助,例如sql-server-2014。语法和功能的差异通常会影响答案。
标签: tsql join sql-server-2012