【问题标题】:Calculating fields on quarterly and yearly basis按季度和年度计算字段
【发布时间】:2012-07-03 16:17:24
【问题描述】:

我在 Oracle Apex 11.1 上有此代码:

select r.s_manager_id,r.s_manager_nam,count(distinct(emp_id))Total_Employees,
    round((SUM(decode(bcoe,'y',1,0))/count(bcoe))*100,2)||'%'bcoe,
    round((SUM(decode(ecp,'y',1,0))/count(ecp))*100,2)||'%'ecp,
    round((SUM(decode(leave,'y',1,0))/count(leave))*100,2)||'%'leave,
    round((SUM(decode(eud,'y',1,0))/count(eud))*100,2)||'%'eud,
    round((SUM(decode(parking,'y',1,0))/count(parking))*100,2)||'%'parking,
    round((SUM(decode(building,'y',1,0))/count(building))*100,2)||'%'building
    from s_manager r,cmanager c,compliancetype t
    where r.s_manager_id = c.s_manager_id
        AND c.s_manager_id = t.s_manager_id
        AND month = 'Feb'
     GROUP BY r.s_manager_id,r.s_manager_nam 

它计算不同类型的合规性,但 ecpbcoe 应该每年计算一次。如何在 Oracle Apex 中做到这一点?那么leave应该是按季度计算的;怎么做?

【问题讨论】:

  • 您正在选择特定月份;您是否希望这些字段显示该月所在季度(或年度)的总数,而其余的则特定于单个月?如果是这样,您可能想查看analytic functions
  • 是的,它是在 oracle application express 上完成的,我已经创建了我的表并在 oracle apex 上运行查询
  • 此链接也可能对了解分析函数有用orafaq.com/node/55

标签: sql oracle oracle11g oracle-apex


【解决方案1】:

每一个

round((SUM(decode(FIELD,'y',1,0))/count(FIELD))*100,2)||'%'FIELD

可以简化为

round(AVG(decode(FIELD,'y',1,0))*100,2)||'%'FIELD

对于 Quarterly/Yearly,如果您要显示的年份数据在 month = 'Dec' 范围内,而季度数据在 3 月、6 月等月份,则无需转到 Analytics。

以这种方式简单地将计算字段包装为季度数据。

case when month in ('Mar', 'Jun', 'Sep', 'Dec') then 
     round(AVG(decode(leave,'y',1,0))*100,2)||'%'leave
else 0
end

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-08
    • 2018-12-20
    • 2013-12-02
    相关资源
    最近更新 更多