我的任务是分析与每个ID相关的前12周的信息。
我有两张桌子;
合同和销售
合同具有实体的ID,位置和开始日期。
销售人员拥有交易的ID,价值和日期。
我需要的是,Sales表仅限于每个ID(开始日期)和(开始日期+12周)范围内的销售数字
附件我已经包含了一个表格(第一次使用sqlfiddle!)来帮助。
http://sqlfiddle.com/#!9/3c0d5c
在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网站就会出现错误。
感谢您抽出宝贵时间阅读我的问题。
答案 0 :(得分:1)
我猜你需要函数DATEADD(),类似于:
Select * from sales where
Date > startDate and Date < DATEADD(wk, 12, startDate)
您的案例中的完整代码:
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)