小编cpc*_*des的帖子

记录和检索时间相关值的最佳方法

我有有一张桌子交易总线(登机乘客)。给定路线 ID日期,我需要在另一个表中查找当天正在执行的服务类型巴士时刻表最多每 6 个月左右更改一次,大多数年份保持不变。

目前调度表的定义如下:

CREATE TABLE [dbo].[Routes](
    [ID] [int] NOT NULL,
    [RouteID] [int] NOT NULL,
    [Type] [varchar](50) NOT NULL,
    [StartDate] [datetime] NOT NULL,
PRIMARY KEY CLUSTERED 
(
    [ID] ASC
));
Run Code Online (Sandbox Code Playgroud)

一个示例可能如下所示:

ID  RouteID  Type          StartDate
--  -------  ------------  ----------
 1      301  Standard      2015-01-01
 2      301  Discontinued  2016-06-01
 3      302  Standard      2015-01-01
 4      302  ParaTrans     2017-01-01
Run Code Online (Sandbox Code Playgroud)

所以,如果我有一个2015-04-20RouteID 301交易,我想取回“标准”,但如果交易是从2018-01-20 开始,它应该返回“停止”。对于2015-01-01之前的交易,它应该返回 NULL(或“”,或任何可能与有效答案冲突的结果,即“标准”、“Paratrans”或“停止”)。 …

database-design sql-server sql-server-2014

7
推荐指数
1
解决办法
383
查看次数