0

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、四半期ごとに計算されることになっています。どうやってするか?

4

1 に答える 1

0

それぞれの

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

に簡略化できます

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

四半期/年次の場合、表示する年のデータが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
于 2012-08-08T08:51:41.983 に答える