如何按年在Oracle中拆分数据

时间:2019-07-11 05:44:15

标签: sql oracle oracle11g

select PAY_COMP_AMT,EMPLOYEE_HKEY,trunc(sysdate, 'YEAR') begin_year
     , add_months(trunc(Active_To_Date, 'YEAR'), 12)-12/31/60/60 last_second_year
from table_name;

上面的查询给出了当前年份和去年的第二年。实际上,我想按年份显示行。

任何建议都会有所帮助!

1 个答案:

答案 0 :(得分:0)

我想您只想显示日期列的年份部分。

因此,使用to_char(Active_To_Date,'yyyy'),并使用add_months()函数删除该部分,然后通过EmployeeYear(例如sum)实现汇总,您可以在单独的行上显示每年的数据:

select Employee_Hkey, to_char(Active_To_Date,'yyyy') as "Year",
       sum(nvl(Pay_Comp_Amt,0)) as Pay_Comp_Amt
  from table_name
 group by to_char(Active_To_Date,'yyyy'),Employee_Hkey
 order by "Year",Employee_Hkey;