2017-02-23 72 views
-2

Используя Oracle, я хочу написать запрос, отображающий сумму данных первого и второго полугодия.
Половинная годовая сумма

Если мои условия поиска данных похожи на 2016/02 ~ 2017/12.

Я хочу показать результат, как показано ниже.
1.Sum of price from 2016/01/01 ~ 2016/06/30 - первый год подряд
2.Sum от 2016/07/01 ~ 2016/12/31 - второй полгода подряд
3.Сумма от 2017/01/01 ~ 2017/06/30 - Первый полугодие подряд
4.Сумм от 2017/07/01 ~ 2017/12/31 - Второй полгода подряд

+0

'2016/13/31'. , ? – GurV

+0

извините и спасибо ... обновлено –

ответ

1

Вы можете использовать формат модели 'Q' для получения квартала года. И манипулируйте им, чтобы рассчитать половину года, как показано ниже.

TO_CHAR(day,'YYYY')|| (CASE WHEN(TO_CHAR(day,'Q')<=2) THEN 1 ELSE 2 END) 

Полный запрос будет как

SELECT TO_CHAR(day,'YYYY')|| (CASE WHEN(TO_CHAR(day,'Q')<=2) THEN 1 ELSE 2 END), 
     SUM(price) 
from my_data 
GROUP BY TO_CHAR(day,'YYYY')|| (CASE WHEN(TO_CHAR(day,'Q')<=2) THEN 1 ELSE 2 END) 
ORDER BY 1 

Пример вывода:

20161 62700 
20162 4095 
20171 163075 
20172 36945