Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Составление SQL-запросов > Запрос за диапзон


Автор: KAV2008 19.7.2011, 13:46
Подскажите как доработать запрос -
Запрос рассчитывает сумму значения val за каждый день revision
в зависимости от признака
для выбранного года и месяца

Код

select
case
          when a1.arc_type_id = 1  then  round(SUM (decode (TO_CHAR (a1.revision, 'DD'), '01'  , val)),2)
          else  0
  end as day_1
***

case
          when a1.arc_type_id = 1  then  round(SUM (decode (TO_CHAR (a1.revision, 'DD'), '31'  , val)),2)
          else  0
  end as day_31
 FROM***
 where
**
 and (TO_CHAR (a1.revision, 'MM'))=:mes
       and    (TO_CHAR (a1.revision, 'YYYY'))=:god  



Необходимо доработать запрос чтобы расчет шел не по суткам 1, 2 и т.к. далее
 а для периода - 2 смены 
1день - с 8 часов 1 до 7 часов 2 текущего месяца
2 день - с 8 часов 2 до 7 часов 3 текущего месяца
т.е. со сдвигом
Возможно ли это сделать одним запросом?
 или только программно каждый запрос в отдельности 
база  oracle 9

Автор: Zloxa 19.7.2011, 13:55
Цитата(KAV2008 @  19.7.2011,  13:46 Найти цитируемый пост)
1день - с 8 часов 1 до 7 часов 2 текущего месяца

Код

case when TO_CHAR (a1.revision, 'DD'), = '01' and a1.revistion >= trunc(a1.revistion)+8/24
              or TO_CHAR (a1.revision, 'DD'), = '02' and a1.revistion <= trunc(a1.revistion)+7/24
then.... 

Автор: KAV2008 26.7.2011, 09:44
Спасибо  smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)