DB2 SQL:如何将 2 行数据变成 1 行

DB2 SQL : How to get 2 rows data into 1

我正在从源中获取员工数据,该数据为同一员工提供了 2 行。第一行有工资,第二行有佣金。为了确定它是薪水还是佣金,我有一个 Flag 列。

现在我想将它存储在我的目标 table 中的单行中,我将在其中将薪水和佣金作为列。

使用条件聚合

select employee_id,max(case when flag=0 then salary end) as salary,
       max(case when flag=1 then commission end) as commission
from tablename
group by employee_id

尝试一下也许有用

select employee_id,sum(salary)salary,sum(commission) from
 (select employee_id,0 as salary,commission from tblname where flag=1
    union all
  select  employee_id ,salary ,0 commission from tblname where flag=0
  )a
group by employee_id