使用特定日期间隔内同一字段的 SUM 更新 table 中的字段

Update field in table using SUM of the same field in a specific date interval

我在 SQL 服务器中有以下 table:

必须应用于 table 的业务规则:如果 Staff_Id 在过去 6 个月内达到 Staff_Sales 2500+,已达到销售配额(..因此 QuotaReached = 1)。

总之,我需要UPDATEStaff_Sales_Last_6_Months。必须计算此列,以便我们得到这样的结果:

注意最后一行如何计算过去 6 个月 Staff_Sales 的总和。这正是我需要的。

我的尝试(无效):

WITH cte_SumSales AS
(
    SELECT
        Staff_Id, SUM(Sales) AS SumSales
    FROM 
        Sales
    WHERE 
        [Date] BETWEEN [Date] AND DATEADD(month, -6, [Date])
    GROUP BY 
        Staff_Id
)
UPDATE t1
SET t1.Staff_Sales_Last_6_Months = t2.SumSales
FROM Sales AS t1
INNER JOIN cte_SumSales AS t2 ON T1.Staff_Id = T2.Staff_Id

关于如何解决这个问题/更好的方法有什么想法吗?

谢谢。

试试这个:

UPDATE te
SET Staff_Sales_Last_6_Month = SS
    , QuotaReached = IIF(SS < 3000, 0, 1)
FROM Table1 as te
OUTER APPLY (
    SELECT SUM(ti.Staff_Sales) 
    FROM Table1 as ti
    WHERE te.Staff_Id = ti.Staff_Id 
        and ti.Date1 <= te.Date1
        and ti.Date1 >= DATEADD(MONTH,-6,te.Date1)
) as ta(SS);