使用日期间隔的案例陈述

时间:2015-02-06 18:23:29

标签: sql oracle case

我正在尝试创建一个变量,该变量在每个客户首次购买后的3个月内累计销售额。下面的代码出错并说我错过了括号。

sum(case
  when merch.trans_dt between min(merch.trans_dt) 
    and add_date(min(merch.trans_dt), interval 3 month)
  then merch.rdswrit_rps_netnet_pur_amt
end) as spend_next3

1 个答案:

答案 0 :(得分:1)

您可以通过简单地使用加法而不是函数来完成此操作:min(merch.trans_dt) + interval 3 month

但是,这可能无法为您提供所需的答案。在许多情况下,例如to_date('1/31/2015','mm/dd/yyyy') + interval '3' month,这会产生ORA-01839: date not valid for month specified

如前所述,您最好使用add_monthsadd_months(min(merch.trans_dt),3)