在 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)
区别在于金额是否真的需要汇总。
我正在尝试用前一周的销售额创建一个新列,如果是该期间的第 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)
区别在于金额是否真的需要汇总。