期间 性别 组 应发 实发 姓名 工号
4 男 CVJ品质TEAM 3520.98 4012.20 陈亮 207008
4 男 CVJ品质TEAM 2682.14 3052.16 陈小牛 207004
4 男 CVJ生产TEAM 4101.59 4675.40 黄国庆 207003
4 男 CVJ生产TEAM 3429.31 3910.35 金朝军 207017
5 男 CVJ品质TEAM 3647.34 4152.60 陈亮 207008
5 男 CVJ品质TEAM 3110.25 3527.83 陈小牛 207004
5 男 CVJ品质TEAM 2520.31 2872.35 车得彪 207038
5 男 CVJ生产TEAM 3998.91 4554.60 黄国庆 207003如何在sql中变换成
性别 姓名 组 4月 5月
男 陈亮 4012.20 4152.60
男 陈小牛 3052.16 3527.83
男 车得彪 null 2872.35
男 金朝军 3910.35 null
这个怎么实现了?
4 男 CVJ品质TEAM 3520.98 4012.20 陈亮 207008
4 男 CVJ品质TEAM 2682.14 3052.16 陈小牛 207004
4 男 CVJ生产TEAM 4101.59 4675.40 黄国庆 207003
4 男 CVJ生产TEAM 3429.31 3910.35 金朝军 207017
5 男 CVJ品质TEAM 3647.34 4152.60 陈亮 207008
5 男 CVJ品质TEAM 3110.25 3527.83 陈小牛 207004
5 男 CVJ品质TEAM 2520.31 2872.35 车得彪 207038
5 男 CVJ生产TEAM 3998.91 4554.60 黄国庆 207003如何在sql中变换成
性别 姓名 组 4月 5月
男 陈亮 4012.20 4152.60
男 陈小牛 3052.16 3527.83
男 车得彪 null 2872.35
男 金朝军 3910.35 null
这个怎么实现了?
sum(case when 期间='4' then 实发 else 0 end) as 4月,
sum(case when 期间='5' then 实发 else 0 end) as 5月
from tab1
group by 性别,组,姓名
select 性别,组,姓名,
sum(decode(期间,4,实发)) 4月实发,
sum(decode(期间,5,实发)) 5月实发
from tb
group by 性别,组,姓名
--caseselect 性别,组,姓名,
sum(case when 期间='4' then 实发) 4月实发,
sum(case when 期间='5' then 实发) 4月实发
from tb
group by 性别,组,姓名
sum(decode(期间,'4',实发)) 4月实发,
sum(decode(期间,'5',实发)) 5月实发
from tb
group by 性别,组,姓名
-- decode
SELECT XB,XM,ZU,SUM(DECODE(QJ,'4',SF,0)) 4月,SUM(DECODE(QJ,5,SF,0)) 5月
FROM TABLE GROUP BY XB,XM,ZU;-- case when
SELECT XB,XM,ZU,SUM(CASE WHEN QJ='4'THEN SF ELSE 0 END) AS 4月,SUM(CASE QJ='5' THEN SF ELSE 0 END) AS 5月
FROM TABLE GROUP BY XB,XM,ZU;