SQL中最近的日期
我正在尝试在SQL Server 2012中查找SQL中最近的日期,sql,sql-server,date,closest,Sql,Sql Server,Date,Closest,我正在尝试在SQL Server 2012中查找表A和表B之间最近的日期或实际日期 表A Date ------- 2017-07-15 00:00:00 2017-07-27 00:00:00 2017-07-23 00:00:00 表B DT ------ 2017-07-17 00:00:00 2017-07-19 00:00:00 2017-07-23 00:00:00 2017-07-28 00:00:00 条件: 如果表A.Date=表B.DT,则表A.Date 如果表A.Da
表A
和表B
之间最近的日期或实际日期
表A
Date
-------
2017-07-15 00:00:00
2017-07-27 00:00:00
2017-07-23 00:00:00
表B
DT
------
2017-07-17 00:00:00
2017-07-19 00:00:00
2017-07-23 00:00:00
2017-07-28 00:00:00
条件:
- 如果表A.Date=表B.DT,则表A.Date
- 如果表A.Date表B.DT,则以表B中较高的日期为准
Date
-----
2017-07-17 00:00:00
2017-07-23 00:00:00
2017-07-28 00:00:00
有任何帮助或指导吗?使用
交叉应用和顶部:
SELECT
Date = x.DT
FROM Table_A a
CROSS APPLY(
SELECT TOP(1) DT
FROM Table_B b
WHERE b.DT >= a.Date
ORDER BY b.DT
) x
ORDER BY x.DT
使用交叉应用
和顶部
:
SELECT
Date = x.DT
FROM Table_A a
CROSS APPLY(
SELECT TOP(1) DT
FROM Table_B b
WHERE b.DT >= a.Date
ORDER BY b.DT
) x
ORDER BY x.DT
MSSQL Server 2012您是否有尝试过的sql?我对第一个条件进行了查询,但对于第二个条件,我无法生成概念MSSQL Server 2012您是否有尝试过的sql?我对第一个条件进行了查询,但对于第二个条件,我无法生成概念