Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 根据表中的日期指定标记期间名称_Sql Server_Sql Server 2008 - Fatal编程技术网

Sql server 根据表中的日期指定标记期间名称

Sql server 根据表中的日期指定标记期间名称,sql-server,sql-server-2008,Sql Server,Sql Server 2008,我有一个表,有三列:每个报告期的开始和结束日期以及期间的名称。我还有第二张桌子,上面有很多日期。我正在尝试创建第三个表,其中包含第二个表中的日期和第一个表中的标记周期名称 我知道我可以通过将第一个表中的日期硬编码为一组CASE语句来实现这一点。有更好的方法吗?这应该可以: select t1.SomeDate, t2.PeriodName from Table1 t1 left join table2 t2 on t1.SomeDate >= t2.DateFrom and t1.Som

我有一个表,有三列:每个报告期的开始和结束日期以及期间的名称。我还有第二张桌子,上面有很多日期。我正在尝试创建第三个表,其中包含第二个表中的日期和第一个表中的标记周期名称

我知道我可以通过将第一个表中的日期硬编码为一组CASE语句来实现这一点。有更好的方法吗?

这应该可以:

select t1.SomeDate, t2.PeriodName 
from Table1 t1
left join table2 t2 on t1.SomeDate >= t2.DateFrom and t1.SomeDate <= t2.DateTo

我真的不知道您是否需要表2中的所有日期,即使表1中对应的name_期间为null,还是表1中的all name_期间,其中表2中的所有对应日期均为null。但是,请尝试以下任一方法:

创建表3,从表2中选择t2.start\u date、t2.end\u date、t1.period\u name,其中t2.start\u date=t1.start\u date或t2.end\u date=t1.end\u date

创建表3,从表2中选择t2.*,t1.period\u name,其中t2.start\u date=t1.start\u date或t2.end\u date=t1.end\u date


哦,天哪,真尴尬,我甚至用了同一个专栏name@Lamak,有时会发生: