0

我正在尝试使用此解决方案来解决如何根据值折叠记录..

表1(输入)

 Emp_ID Start_Date  End_Date    Rating  Department  Salary
2000    01012011    12312011    A   HR          10000
2000    01012012    12319999    A   HR          20000
3000    01012011    12312011    B   Operations  50000
3000    01012012    12312012    B   Operations  60000
3000    01012013    12319999    C   Operations  70000

表2(输出)

 Emp_ID Start_Date  End_Date    Rating  Department
2000    01012011    12319999    A   HR
3000    01012011    12312012    B   Operations
3000    01012013    12319999    C   Operations

数据库是oracle。我只需要一些关于如何解决这个问题的开始,以便我可以解决它..

提前致谢..

编辑:假设表 1 和表 2 有 EMP_NAME 列。但我无法将这一列作为分组加载到 table2 中,不会让我这样做..(我说的是 Pablo Santa Cruz 给出的解决方案)

关于这个的任何解决方案..

编辑: 编辑了表结构 agan ..抱歉造成混淆

4

1 回答 1

2

试试这个:

select emp_id, rating, min(start_date), max(end_date)
  from table_1
 group by emp_id, rating

如果您需要将值实际存储在table_2表中,请以create table table_2 as.

考虑到您的评论,您可以执行以下操作:

create table table_2 as
select emp_id, rating, min(start_date), max(end_date), 
       'EMP_DEPT_INFO' as emp_deparment
  from table_1
 group by emp_id, rating

其他可能性可能是首先创建表,然后执行alter table以包含新列。

于 2012-05-16T17:55:45.707 回答