【发布时间】:2021-01-05 19:45:13
【问题描述】:
我在 SQL Server 中有下表:
必须应用于表的业务规则:如果过去 6 个月内 Staff_Id 达到 2500+ 的 Staff_Sales,则达到销售配额(..因此 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
关于如何解决这个问题/更好的方法有什么想法吗?
谢谢。
【问题讨论】:
-
下面最佳答案的索引视图怎么样?
标签: sql-server tsql sql-update dateinterval