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

How do I add 1 to a column value on an insert into statement in a stored procedure?

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

存储过程当前如下所示:

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;

table 列是周、BX、BK、MN、QN、SI、CF、总计。

如果我没听错,你想要:

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

子查询从目标 table 中检索最大 Week 值,并将其递增; COALESCE() 处理 table 最初为空的情况(在这种情况下插入 1)。