多个列中的sql oracle sum valaues

鲍勃·琼斯

我正在寻找解决方案来解决我的问题。

我有一个查询

select em_name, sum(abs_day_left)
from pp_employees,
     pp_types_abs,
     pp_abs 
where em_id = abs_em_id and abs_abs_id = abs_id and
      abs_kod in ('12','13','14','15')  
group by em_name

我想用其他abs_kod号(图像附件)制作更多列

第二列...('656','44','323','33')中的abs_kod第三列...('63','55','565','556')中的abs_kod等..示例表感谢您的帮助和愉快的周末

还有一件事...

公式计算整个月的天数,如何正确设置设置半个月的参数的天数,例如从1980-01-01到1980-03-15

预先感谢鲍勃

专线小巴

我认为您正在寻找条件聚合:

select 
    em_name, 
    sum(case when abs_kod in (12,13,14,15)   then abs_day_left end) abs_day_left_1,
    sum(case when abs_kod in (656,44,323,33) then abs_day_left end) abs_day_left_2,
    sum(case when abs_kod in (63,55,565,556) then abs_day_left end) abs_day_left_3
from pp_employees
inner join pp_abs on em_id = abs_em_id 
inner join pp_types_abs on abs_abs_id = abs_id
where and abs_kod in (12,13,14,15,656,44,323,33,63,55,565,556)
group by em_name

笔记:

  • 总是使用显式联接,而不是旧式,隐式联接-我试图解决此问题,但是由于以下原因,我不确定我是否正确执行了...

  • 始终用其所属的表来限定查询中的列

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章