У меня есть следующий sql, который дает мне отчет о том, что досье обрабатывается людьми за последние полные три месяца, но я хотел бы принять его, чтобы я получил его с предыдущего триместра, например, когда я запустил его сейчас, я должен получитьдосье от 10, 11 и 12 месяцев 2011 года и в апреле от 1, 2 и 3 месяца 2012 года. Может кто-нибудь сделать предложение, как справиться с этим самым простым способом.Эти отчеты хранятся в виде 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
Редактировать:
Здесь запрос дополнен предложением Joachim
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