Sql 如何将1添加到存储过程中insert into语句的列值中?

Sql 如何将1添加到存储过程中insert into语句的列值中?,sql,stored-procedures,sql-insert,auto-increment,Sql,Stored Procedures,Sql Insert,Auto Increment,我有一个每小时更新一次的表格RPT.SummaryAggregates。我需要创建一个存储过程,每周使用RPT.SummaryAggregates中总记录的快照填充RPT.WeeklyAggregates表一次此SP将使用SQL代理作业进行设置。我需要RPT.WeeklyAggregates的Week列在每次运行存储过程时自动递增1。表中当前有一周的数据 存储过程当前如下所示: INSERT INTO RPT.WeeklyAggregates SELE

我有一个每小时更新一次的表格RPT.SummaryAggregates。我需要创建一个存储过程,每周使用RPT.SummaryAggregates中总记录的快照填充RPT.WeeklyAggregates表一次此SP将使用SQL代理作业进行设置。我需要RPT.WeeklyAggregates的Week列在每次运行存储过程时自动递增1。表中当前有一周的数据

存储过程当前如下所示:

INSERT INTO RPT.WeeklyAggregates                      
SELECT 
    1 AS Week,                                                                                      
    SUM(BX),
    SUM(BK),
    SUM(MN),
    SUM(QN),
    SUM(SI),
    SUM(CF),
    (SUM(BX)+SUM(BK)+SUM(MN)+SUM(QN)+SUM(SI)+SUM(CF)) as Total                  
FROM RPT.SummaryAggregates

END;

表中的列是Week、BX、BK、MN、QN、SI、CF、Total。

如果我没有弄错,您需要:

INSERT INTO RPT.WeeklyAggregates(Week, BX, BK, MN, QN, SI, CF, Total)
SELECT 
    (SELECT COALESCE(MAX(Week), 0) + 1 FROM WeeklyAggregates),
    SUM(BX), 
    SUM(BK), 
    SUM(MN), 
    SUM(QN), 
    SUM(SI), 
    SUM(CF), 
    SUM(BX)+SUM(BK)+SUM(MN)+SUM(QN)+SUM(SI)+SUM(CF)
FROM RPT.SummaryAggregates

子查询从目标表中检索最大周值,并将其递增;当表格最初为空时,COALESCE将处理该情况,此时将插入案例1。

非常感谢GMB!这正是我所追求的,并将为SSRS仪表板上的小部件供电。