Страница 1 из 1
Группировка по кварталам все года - как лучше? (проще)
Добавлено: 24 окт 2008, 09:34
Александр
Код: Выделить всё
if(req_dbegin<=date(string(f_MonthDayCount(3 ,2006))+'.03.2006'),'2006 1й квартал',
if(req_dbegin<=date(string(f_MonthDayCount(6 ,2006))+'.06.2006'),'2006 2й квартал',
if(req_dbegin<=date(string(f_MonthDayCount(9 ,2006))+'.09.2006'),'2006 3й квартал',
if(req_dbegin<=date(string(f_MonthDayCount(12 ,2006))+'.12.2006'),'2006 4й квартал',
if(req_dbegin<=date(string(f_MonthDayCount(3 ,2007))+'.03.2007'),'2007 1й квартал',
if(req_dbegin<=date(string(f_MonthDayCount(6 ,2007))+'.06.2007'),'2007 2й квартал',
if(req_dbegin<=date(string(f_MonthDayCount(9 ,2007))+'.09.2007'),'2007 3й квартал',
if(req_dbegin<=date(string(f_MonthDayCount(12 ,2007))+'.12.2007'),'2007 4й квартал',
if(req_dbegin<=date(string(f_MonthDayCount(3 ,2008))+'.03.2008'),'2008 1й квартал',
if(req_dbegin<=date(string(f_MonthDayCount(6 ,2008))+'.06.2008'),'2008 2й квартал',
if(req_dbegin<=date(string(f_MonthDayCount(9 ,2008))+'.09.2008'),'2008 3й квартал',
if(req_dbegin<=date(string(f_MonthDayCount(12 ,2008))+'.12.2008'),'2008 4й квартал',
'')))) )))) ))))
это колонка для группировки по кварталам - отчет просто вешается - не подскажите более красивое решение? а главное быстрое!

Добавлено: 24 окт 2008, 10:12
Anderyt
год можно вычислить через
квартал:
и потом видимо их сцепить в одну строку в нужном для отчета формате...
и с наступлением нового квартала скорее всего ничего в отчете изменять не придется
Добавлено: 24 окт 2008, 10:22
Александр
нет видимо я непонятно сформулировал
есть большой отчет по всем годам - и его нужно просто группировать по кварталам
вот та формула - она работает в колонке и вроде не тормозит (в ней я получаю название квартала)
а вот как только я начинаю группировать по этой колонке - отчет выполняется на Порядок больше по времени - не знаю с чем связано.
Вроде простая колонка - в колонке текст с названием квартала и все
не объяснишь - а что ты имел в виду под ceiling(month(req_dbegin)/3)?
основные тормоза у меня в том что я каждый раз вычисляю количество дней в ключевых месяцах - вот как-бы это ускорить?
т.е. просто формулу переписать там через case или еще как
Добавлено: 24 окт 2008, 10:30
Anderyt
вот я как раз так и понял, что надо формулу по другому написать..
в общем..
если в формуле написать вот это:
Код: Выделить всё
year(req_dbegin) + ' '+ ceiling(month(req_dbegin)/3)+'й квартал'
то должно получится примерно то же самое, что и сейчас..
Добавлено: 24 окт 2008, 10:33
Александр

Спасибо!
ps
отчет навороченный - и что-то после маленьких изменений - все время сбрасывается (до девственно чистого состояния)- хорошо копия есть - ужас просто!
Добавлено: 24 окт 2008, 11:16
Александр
СУПЕР! все работает! Скажи а високосный год - нормально разобьётся по кварталам?
Добавлено: 24 окт 2008, 11:30
Александр
Слушай Андрей - можно я тебя еще поэксплуатирую?
а не подскажешь - какой формулой сделать тоже самое но вплоть до месяцев кварталов
т.е. например '2008 г. 1й месяц 1го квартала'
Добавлено: 24 окт 2008, 11:44
Anderyt
быстрее хоть стало?

по идее тоже должен високосный сработать.. в нем же то же кол-во месяцев, что и в обычном году..
здесь используется именно месяц, его номер.
потом его делим на три и округляем до 1-го целого в сторону увеличения... вроде так...
Добавлено: 24 окт 2008, 11:49
Anderyt
Код: Выделить всё
year(req_dbegin) + ' г. '+month(req_dbegin)+'й месяц '+ ceiling(month(req_dbegin)/3)+'го квартала'
блин, 3 раза уже не удается отправить.
магнитная буря, не иначе...
Добавлено: 24 окт 2008, 11:50
Александр
быстрее стало - ровно в 23 раза! и группировка не тормозит (может действительно день такой)
