[ОТВЕТИТЬ]
Опции темы
05.10.2012 17:55  
didinap
Поставлена задачка написать отчет где по горизонтали должен выводится доход по выбранной группе в разрезе месяцев. Т.е если поставлена дата с 10.10.2010 до 11.11.2011 то выводилась бы доходность для данной группы/товару на каждый месяц в течении данной даты.


Это вырезка из отчета Profit_goods для версии 1.029.1.
Как нарезать на месяцы не пойму.
Не создавать же отдельный запрос для каждого месяца.

SQL код:
    sql_sub := 'insert into supermag.TTArticleDateProfit' || 
              
' (locid,article,forcmap,saledate,sum_notax,cp_notax)' || 
' select LOC_VAL,'||
              
'crd.article,' || 
        
'decode(crd.datatype,1,0,' || supermag.RepTools.LocString(20,'m') || ') forcmap' || 
         
s_dat   || ' dat,' || 
        
'round(sum(decode(m.salelocationto,null,1,-1)*SUM_SPEC),' || SetSum.round_sum || ') sumspec_notax,' ||   
        
'round(sum(decode(m.salelocationto,null,1,-1)*SUM_CP),'   || SetSum.round_sum || ') cp_notax' ||  
' from supermag.smcard crd,' ||           'supermag.' || supermag.RepTools.GetMapRepTbl(:P_FirstDate,:P_LastDate) || ' m' ||
    
' where m.saleop in ('   || SetSum.s_op_buyer_out   || ',' || SetSum.s_op_buyer_in   || ')' ||   
  
' and m.saletype in (' || SetSum.s_type_buyer_out || ',' || SetSum.s_type_buyer_in || ')' ||
  
' and m.saledate between ' || supermag.Rep_Date(:P_FirstDate) ||  
                     
' and ' || supermag.Rep_Date(:P_LastDate) ||
      
' FORCMAP_WHERE' ||  
  
' and crd.article=m.article' || 
        
supermag.RepTools.ClassString(4,'m') || 
        
supermag.RepTools.LocString(0,'nvl(m.salelocationfrom,m.salelocationto)') ||
' group by LOC_VAL,crd.article,decode(crd.datatype,1,0,' || supermag.RepTools.LocString(20,'m') || ')' || s_dat
 
05.10.2012 18:03  
OlegON
не знаю объема БД, но один раз лет много назад была аналогичная задача, только по дням, кажется. собрал. этот монстр выжрал весь темп или анду десятками гигабайт (база была достаточно большая, а столбцов было много). поэтому я переделал и именно по месяцам запускал потом куски запроса. тут, кстати, где-то валялось, отчет "Марина" или вроде того.
 
05.10.2012 18:05  
didinap
база щас на обрезке до 2009 года. Будут смотреть думаю максимум за два года. Этот отчет должен в хранилище быть?
Что то не могу найти этот отчет!
 
05.10.2012 19:40  
OlegON
https://olegon.ru/showthread.php?t=845, правда не знаю, работает ли он. я еще на 8i его писал
 
"Спасибо" OlegON от:
05.10.2012 20:03  
didinap
Спасибо, покапаюсь в нем там видно будет.

Там ексе файл. Мне надо чтоб вставить в отчет. может сохранился код?
 
05.10.2012 20:47  
OlegON
очень сомнительно, увы :(
 
06.10.2012 03:15  
didinap
кстати он чего то не заработал если что.
Ладно подождем, может еще кто поставит на путь истинный:)
 
06.10.2012 11:16  
Mtirt
А зачем так-то?
В Бизнес-Анализе этот отчет делается в пару кликов мышью.
Причем именно в разрезе месяцев.
 
06.10.2012 11:57  
didinap
Да, знаю. Там еще в этот отчет надо впихнуть многое. Все это в бизнес анализе выводится за два раза. Но клиент почему то настаивает именно на отчете.
 
06.10.2012 12:06  
Mtirt
В своем отчету saledate заменяешь на month(saledate), по нему же добавляешь группировку.
Должно работать...
 
 


Опции темы



Часовой пояс GMT +3, время: 01:19.

Все в прочитанное - Календарь - RSS - - Карта - Вверх 👫 Яндекс.Метрика
Форум сделан на основе vBulletin®
Copyright ©2000 - 2016, Jelsoft Enterprises Ltd. Перевод: zCarot и OlegON
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.