在 SQL 中使用 CASE 语句拉取前一周

Using a CASE statement in SQL to pull the previous week

我正在尝试用前一周的销售额创建一个新列,如果是该期间的第 1 周,则为 0。

这只是返回全 0。有什么建议吗?

SUM(CASE 
    WHEN GMR.AMC_WEEK <> 1 AND GMR.AMC_WEEK = GMR.AMC_WEEK -1 THEN GMR.NET_SALES_AMT
    ELSE 0 END) AS PREV_WK_SLS,

您没有将 case 用于此目的。我猜你想要其中之一:

lag(GMR.NET_SALES_AMT, 1, 0) over (order by amc_week)

或:

lag(sum(GMR.NET_SALES_AMT), 1, 0) over (order by amc_week)

区别在于金额是否真的需要汇总。