在包含多个开始和日期列表的表中查找日期,如果找到则返回默认值

Posted

技术标签:

【中文标题】在包含多个开始和日期列表的表中查找日期,如果找到则返回默认值【英文标题】:Look up a date in a table with a list of multiple start and dates and return a default value if found 【发布时间】:2015-10-05 04:37:03 【问题描述】:

如果正在查找的日期介于另一个表中的任何开始时间和结束时间之间,我在尝试创建将返回默认值的查询时遇到了一些麻烦。

正在查找的日期在表 1 中,开始和结束日期在表 2 中。我需要将表 1 中的值与表 2 中的每个开始日期和结束日期进行比较。

所以我想要的是,如果 [table1].[date] 介于 [table2].[startdate] 和 [table2].[enddate] 的任何列表之间,那么值“TRUE”为显示,否则显示 [table1].[value]。

希望这是有道理的。

【问题讨论】:

【参考方案1】:

可能是:

Select 
    [table1].[date],
    IIf([table1].[date] Between [table2].[startdate] And [table2].[enddate], "TRUE", [table1].[date]) As DateFound
From
    [table1],
    [table2]

【讨论】:

以上是关于在包含多个开始和日期列表的表中查找日期,如果找到则返回默认值的主要内容,如果未能解决你的问题,请参考以下文章

从 SQL 表中查找下一个工作日

如果开始日期和结束日期跨越一个或多个月,则插入表格时日期格式会发生变化

如何从 sql server 2008 中具有不同 TaskIds 的表中查找日期?

如何生成列表而忽略日期不符合我要查找的范围的记录?

SQL - 为表中的每个货币代码(在两个定义的日期之间)创建一个具有唯一日期和货币记录的表

在不同的表中返回最近的日期