半年总和显示

时间:2017-02-23 05:36:59

标签: sql oracle oracle11g

使用Oracle我想编写一个显示第一年和第二年半年数据总和的查询。

如果我的数据搜索条件如2016/02~2017 / 12。

我想显示如下结果。
1. 2016年1月1日〜2016年6月30日的价格 - 上半年排 2. 2016年7月1日〜2016年12月31日的价格 - 下半年排 3.价格从2017/01/01~2017 / 06/30 - 上半年排 4.Sum of price from 2017/07/01~2017/12/31 - 下半年排

1 个答案:

答案 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