我有一个存储销售数据的销售表。该表每天更新一次(增量更新)。我正在尝试更新此表中的列之一以计算自sale_date以来的账龄。
s
我得到无效的操作:无效的查询错误。谁能帮我找到我在哪里出问题了。
我正在使用Amazon Redshift数据库。
谢谢。
答案 0 :(得分:1)
您可能只需要在更新的RHS一侧删除select
:
UPDATE sales
SET aging = CASE WHEN sale_date > current_date - 28 AND sale_date < current_date - 14
THEN '2 - 4 Weeks Ago'
WHEN terminated_at > current_date - 14 AND terminated_at < current_date
THEN '0 - 2 Weeks Ago'
WHEN terminated_at < current_date - 28
THEN '4+ Weeks Ago'
ELSE 'Unknown' END;
但是,我觉得也许您不应该将此信息存储在SQL表中。相反,在需要时使用相同的CASE
表达式进行选择时,可以生成此输出。我之所以这样说,是因为当您添加新记录并添加新日期信息时,必须再次计算此计算列,这可能会很昂贵。