2012-03-02 5 views
1

나는 지난 3 개월 동안 사람이 처리하는 서류에 대한 보고서를 제공하는 다음 sql을 가지고 있지만 이전 삼보경의 사람들을 받아들이고 싶습니다. 이제는 2011 년 10, 11, 12 개월 및 2012 년 1 월 2 일과 3 월 4 일에 서류를 받아야합니다. 누군가가 이것을 가장 쉬운 방법으로 처리 할 수있는 제안을 할 수 있습니까? 이러한 보고서는 SQL에 데이터베이스로 저장되므로 언제든지 실행할 수 있어야합니다.오라클의 이전 트리머 SQL

select 
pers_nr "person", 
to_char(import_dt,'YYMM') "year and month", 
count(pers_nr) "dossiers" 
from 
    rdms_3codon 
where 
to_char(import_dt,'YY')*12+to_char(import_dt,'MM') > to_char(sysdate,'YY')*12+to_char(sysdate,'MM')-4 
and to_char(import_dt,'YY')*12+to_char(import_dt,'MM') < to_char(sysdate,'YY')*12+to_char(sysdate,'MM') 
group by 
pers_nr, 
to_char(import_dt,'YYMM') 
order by 
pers_nr 

편집 :

여기

요아킴

select 
pers_nr "person", 
to_char(import_dt,'YYMM') "year and month", 
count(pers_nr) "dossiers" 
from 
    rdms_3codon 
where 
trunc(import_dt) >= trunc(trunc(sysdate, 'Q') -1, 'Q') 
and trunc(import_dt) < trunc(sysdate, 'Q')-1/(24*60*60) 
group by 
pers_nr, 
to_char(import_dt,'YYMM') 
order by 
pers_nr 

답변

5

에 의해 제안 향상 쿼리 이것이 당신이 찾고있는 무엇인가?

SELECT TRUNC(TRUNC(SYSDATE, 'Q') -1, 'Q') AS startLastQuarter, 
     TRUNC(SYSDATE, 'Q')-1/(24*60*60) AS endLastQuarter, 
     TRUNC(SYSDATE, 'Q')    AS startThisQuarter  
FROM DUAL; 

데모 here.

+0

당신의 기술은 내가 월요일에 그것을 시험해 볼 것을 약속하는 것 같습니다. 지금 떠나야 만합니다. – peter

+0

요아킴에게 감사드립니다. 나는이 쿼리의 출력에 관한 또 다른 질문을 가지고 있지만 새로운 질문을 할 것이다. – peter

0
SELECT TRUNC(add_months(SYSDATE,-3*N), 'Q') FROM DUAL; 

리마 레스 드 트리 메스 트리스 테레스트 큐어에 어택.

+0

코멘트가 영어로되어 있지 않다 ... 고칠 수 있니? –