Sql 使用两个表创建期间日期筛选器

Sql 使用两个表创建期间日期筛选器,sql,function,date,Sql,Function,Date,我对SQL场景相当陌生,到目前为止,这个网站已经帮助我找到了很多技巧和窍门。但如果可以的话,我还没能找到一个准确的方法来做到这一点。我可以使用SQL查询或IF、THEN、ELSE语句来创建此函数 我使用Group By将两个表放在一起,表1有一列POSTEDTT,其中交易日期记录在YYYY-MM-DD中,表2有4列我想用来声明POSTEDTT日期属于哪个期间 表2列为: PeriodT期间的开始日期YYYY-MM-DD YYYY-MM-DD期间的截止日期 PERNAME时段名称:时段1、时段2等

我对SQL场景相当陌生,到目前为止,这个网站已经帮助我找到了很多技巧和窍门。但如果可以的话,我还没能找到一个准确的方法来做到这一点。我可以使用SQL查询或IF、THEN、ELSE语句来创建此函数

我使用Group By将两个表放在一起,表1有一列POSTEDTT,其中交易日期记录在YYYY-MM-DD中,表2有4列我想用来声明POSTEDTT日期属于哪个期间

表2列为: PeriodT期间的开始日期YYYY-MM-DD YYYY-MM-DD期间的截止日期 PERNAME时段名称:时段1、时段2等。 2015年、2014年、2013年等第1年

所以我需要看一下POSTEDDT,确定哪一年属于第1年,然后使用第1年来确定PeriodT和PERDENDT之间的时段日期范围,即确定PERNAME,并将其作为最终结果标记到一个新列中

我可能会超出很多范围,因此如果超出能力范围,我提前表示歉意


感谢您在advanced中的所有输入

周期日期会重叠吗?这似乎是这些表之间的简单连接:从表1中选择*作为t1连接表2作为t1上的t2。在t2.dt和t2之间的POSTEDDT。谢谢大家的快速回复,不,期间日期不会重叠。至于加入,我认为这不起作用。POSTEDDT的原因只有交易的日期是一周中的M-F,期间的开始和结束日期总是在星期日和星期六。1您是使用日期/时间数据类型[良好],还是[不良]将日期存储为YYYY-MM-DD格式的字符串?2您可以使用超过8个字符的列名,这将使您的代码更加清晰,3@dnoeth是正确的,连接将起作用,因为您将获得开始日期和结束日期之间的所有行。是的,PERIODDT、PERDENDT和POSTEDDT都是日期时间数据类型。听起来加入是可能的,我需要在可能的情况下加入某种子句来保持事物的分离,尽管我将提取的一些数据是唯一的,但很多发生在同一天,来自不同的销售地点。