【发布时间】:2016-09-12 01:08:59
【问题描述】:
一张表有股票的名称、价值和股票的生效日期,假期/周末不会有任何条目。如果我通过的日期范围包含节假日/周末,我想返回以前的日期记录。
例如
表名:库存
ID Name Value EffectiveDate
1 IBM 200.0000 2015-12-31 00:00:00.000
2 IBM 201.4500 2016-01-04 00:00:00.000
3 IBM 201.0000 2016-01-05 00:00:00.000
4 IBM 202.0000 2016-01-06 00:00:00.000
SELECT Name, Value, EffectiveDate FROM Stock WHERE Name = 'IBM' AND EffectiveDate >= '20151231' AND EffectiveDate <= '20160105'
以上查询返回前 3 条记录,但我想返回以下结果:
Name Value EffectiveDate ActualDate
IBM 200.0000 2015-12-31 2015-12-31
IBM 200.0000 2015-12-31 2016-01-01
IBM 200.0000 2015-12-31 2016-01-02
IBM 200.0000 2015-12-31 2016-01-03
IBM 201.4500 2016-01-04 2015-01-04
IBM 201.0000 2016-01-05 2015-01-05
01/01/2016 至 03/01/2016 是节假日/周末。如果我通过假期/周末日期,我有一个返回前一个日期的函数。任何人都可以帮助在 SQL Server 中编写查询以实现上述目的吗?
【问题讨论】:
标签: sql-server sql-server-2008