2015-02-06 66 views
0

我正在嘗試創建一個變量,用於在每個客戶首次購買時間系列後的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

你好像缺少'then'?但'add_date'不是Oracle函數,並且間隔字面量應該是'3'。改爲查看'add_months'函數。 – 2015-02-06 18:24:27

+0

我更新了這裏的代碼..這是一個複製/粘貼錯誤 – 2015-02-06 18:26:16

+2

你想...'和add_months(min(merch.trans_dt),3)'? – 2015-02-06 18:29:55

回答

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_months,如之前在評論中所示:add_months(min(merch.trans_dt),3)