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