使用特定日期间隔内同一字段的 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
)。
总之,我需要UPDATE
列Staff_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);
我在 SQL 服务器中有以下 table:
必须应用于 table 的业务规则:如果 Staff_Id
在过去 6 个月内达到 Staff_Sales
2500+,已达到销售配额(..因此 QuotaReached = 1
)。
总之,我需要UPDATE
列Staff_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);