我有有一张桌子交易的总线(登机乘客)。给定路线 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-20的RouteID 301交易,我想取回“标准”,但如果交易是从2018-01-20 开始,它应该返回“停止”。对于2015-01-01之前的交易,它应该返回 NULL(或“”,或任何可能与有效答案冲突的结果,即“标准”、“Paratrans”或“停止”)。 …