SQL Server循环基于日期运行脚本?

时间:2017-06-30 04:19:17

标签: sql-server

不确定从哪里开始搜索。基本上我有一个从表中返回多个指标的脚本。它使用截止日期(每个星期一)。我能够收集过去几年的星期一“截止日期”现在我希望能够编写一个脚本,使用这些日期而不是手动运行52次。

结束表如下所示:

 Office   | Metric_1| Metric_2|As_of_Date|
 12       | 2000000 |  1      |2017-06-28|
 15       | 4000000 |  2      |2017-06-28|
 20       | 8000000 |  4      |2017-06-28|

我非常感谢任何方向或帮助。 谢谢

最终结果表如下所示:

Office   | Metric_1| Metric_2|As_of_Date|
 12       | 2000000 |  1      |2017-06-28|
 15       | 4000000 |  2      |2017-06-28|
 20       | 8000000 |  4      |2017-06-28|
 12       | 2000000 |  1      |2017-05-15|
 15       | 4000000 |  2      |2017-05-15|
 20       | 8000000 |  4      |2017-05-15|

1 个答案:

答案 0 :(得分:0)

如果我没有弄错你,你需要的是找到今年有as_of_date的所有数据,所以你只需要将日期限制在今年,一些例子关于如何做到这一点

select * from table where as_of_date >= to_date('2017-01-01','yyyy-mm-dd') and as_of_date <= to_date('2017-12-31','yyyy-mm-dd')

或更好的方式

select * from table where WHERE EXTRACT(YEAR FROM as_of_date ) = 2017

UPD:正如您在评论中所述,为了从 DataTable 获取一些数据,根据您提到的 DateTable ,您可以使用加入如下:

SELECT A.* FROM DATATABLE A RIGHT JOIN DATETABLE B ON A.AS_OF_DATE = B.AS_OF_DATE