我在下面的代碼中收到錯誤消息。我的目標是在指定日期後的三個月內計算符合標準的任何人。CASE 3個月後返回
, COUNT(DISTINCT case when instr(proc_concat,'297.7') and
(BetweenDate -3 months) then RECIPIENT end) AS TCOUNTH
(BetweenDate -3個月)是棘手的部分。我在一個年度窗口內運行,而不是從getDate返回3個月(),我需要它從Y的-3個月內返回三個月。任何想法?謝謝。
修改:
CREATE TABLE MONTH3LOOK AS Select
to_CHAR(DATE_OF_SERVICE_3013,'YYYY-MM') "Date"
,COUNT(DISTINCT case when (regexp_instr(IS_CONCAT,'(2957|29570|29571|29572|29573|29574|29575|29576|29577|29578|29579)')>0)
and
(DATE_OF_SERVICE_3013 between trunc(DATE_OF_SERVICE_3013,'MM') and add_months(trunc(DATE_OF_SERVICE_3013,'MM'),-3))
then USER end) AS Recip
FROM .NET_SERVICE
WHERE DATE_OF_SERVICE_3013 BETWEEN
TO_DATE('2013-10','YYYY-MM') AND
TO_DATE('2014-03','YYYY-MM')
group by to_CHAR(DATE_OF_SERVICE_3013,'YYYY-MM')
是有一個更快的方式來查詢這個....我只是測試它,它需要約2小時。我想回答的是:計算3個月內具有IS_DIA的用戶從滾動的等級的X月到X-3月。謝謝。
你忘了提及你得到的錯誤是什麼...另外,我建議你查看'months_between()'函數,這個函數似乎是你之後的函數(你會比較你的日期列與sysdate,大概)。或者可能在add_months(sysdate,-3)和sysdate'之間有'your_date_column'。 – Boneist