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
Sql server 根据ID提取属于特定日期段的所有行_Sql Server - Fatal编程技术网

Sql server 根据ID提取属于特定日期段的所有行

Sql server 根据ID提取属于特定日期段的所有行,sql-server,Sql Server,我的任务是分析与每个ID相关的前12周信息 我有两张桌子 合同和销售 合同具有实体的ID、位置和开始日期 Sales具有交易的ID、价值和日期 我需要的是销售表仅限于每个ID的(开始日期)和(开始日期+12周)范围内的销售数字 附件中我提供了一个表格的模式(第一次使用SQLFIDLE!)作为帮助 在ID的示例中:701910AIR、702536AIR、700701ARD 合同项目包括: ID Start Date Location 701910AIR 01/08/201

我的任务是分析与每个ID相关的前12周信息

我有两张桌子

合同和销售

合同具有实体的ID、位置和开始日期

Sales具有交易的ID、价值和日期

我需要的是销售表仅限于每个ID的(开始日期)和(开始日期+12周)范围内的销售数字

附件中我提供了一个表格的模式(第一次使用SQLFIDLE!)作为帮助

在ID的示例中:701910AIR、702536AIR、700701ARD

合同项目包括:

ID          Start Date  Location
701910AIR   01/08/2016  AIREHGA
702536AIR   01/08/2016  AIREHGA
700701ARD   11/02/2016  ARDRIEI
我只希望以下销售条目显示:

Value      Date        ID
 266.05     09/08/2016  701910AIR
 410.25     01/09/2016  701910AIR
 417.10     05/10/2016  701910AIR
 133.00     09/08/2016  702536AIR
 182.35     01/09/2016  702536AIR
 228.80     05/10/2016  702536AIR
 245.91     17/02/2016  700701ARD
 205.57     01/03/2016  700701ARD
 263.65     15/03/2016  700701ARD
 222.20     29/03/2016  700701ARD
 244.55     13/04/2016  700701ARD
 182.50     27/04/2016  700701ARD
我提前表示歉意,每次我试图将日期列转换成更易于识别的格式时,SQLFIDDLE站点都会不断抛出错误


感谢您抽出时间阅读我的问题。

我想您需要函数DATEADD(),类似于:

Select * from sales where
Date > startDate and Date < DATEADD(wk, 12, startDate)
从sales where中选择*
日期>开始日期和日期<日期添加(第12周,开始日期)
您案例中的完整代码:

Select s.* from sales s
join Contract c on s.ID = c.ID
where
DDate > c.Start_date and DDate < DATEADD(wk, 12, c.Start_date)
从sales s中选择s.*
在s.ID=c.ID上加入合同c
哪里
DDate>c.Start\u日期和DDate
您已经用sql server标记了它,但您的小提琴是为mysql准备的。您实际使用的是哪一个?嗨,Sean,我在发布模式时遇到了一些问题,正如在文章中提到的-实际上我使用的是Sql server。另一件事是,您在SqlFIDLE中的数据与此处发布的数据不匹配。您声明了日期,但是fiddle是int。如果您不能让SQLfiddle工作,那么在您的问题中发布ddl和示例数据。