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
我正在从源中获取员工数据,该数据为同一员工提供了 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