• 网点发展统计报表sql(oracle)


    select *
      from (select rownum tn,
                   organise_id organiseId,
                   organise_name,
                   nvl(recommendTotal, 0) recommendTotal,
                   nvl(recommendSuc, 0) recommendSuc,
                   nvl(pointsTotal, 0) pointsTotal,
                   decode(nvl(recommendTotal, 0),
                          0,
                          0,
                          recommendSuc / recommendTotal) sucRate,
                   decode(nvl(validPoints, 0),
                          0,
                          0,
                          round(recommendSuc / validPoints, 2)) pointCapacity,
                   decode(nvl(pointsTotal, 0),
                          0,
                          0,
                          round(validPoints / pointsTotal, 4) * 100) pointOnline,
                   nvl(userTotal, 0) userTotal,
                   nvl(vaildUser, 0) vaildUser,
                   RANK() OVER(order by nvl(recommendTotal, 0) desc) as recommendTotalnum,
                   RANK() OVER(order by nvl(recommendSuc, 0) desc) as recommendSucnum,
                   RANK() OVER(order by decode(nvl(recommendTotal, 0), 0, 0, recommendSuc / recommendTotal) desc) as sucRatenum,
                   RANK() OVER(order by decode(nvl(validPoints, 0), 0, 0, round(recommendSuc / validPoints, 2)) desc) as pointCapacitynum,
                   RANK() OVER(order by decode(nvl(pointsTotal, 0), 0, 0, round(validPoints / pointsTotal, 4)) desc) as pointOnlinenum,
                   nvl(onlinePoints, 0) onlinePoints,
                   nvl(validPoints, 0) validPoints,
                   nvl(activePoints, 0) activePoints,
                   nvl(warnPoints, 0) warnPoints
              from (select o.organise_id,
                           o.organise_Code,
                           o.organise_name,
                           a.pointsTotal,
                           a.userTotal,
                           sum(recommendTotal) recommendTotal,
                           sum(recommendSuc) recommendSuc,
                           sum(onlinePoints) onlinePoints,
                           sum(vaildUser) vaildUser,
                           sum(validPoints) validPoints,
                           sum(activePoints) activePoints,
                           sum(warnPoints) warnPoints
                      from sys_organise_info o,
                           (select o.organise_id,
                                   o.organise_name,
                                   o.organise_code,
                                   count(distinct p.organise_id) pointsTotal,
                                   count(case
                                           when u.flag = 0 then
                                            u.emp_no
                                           else
                                            null
                                         end) userTotal
                              from sys_organise_info    o,
                                   tview_organise_point p,
                                   sys_user_info        u,
                                   sys_organise_channel sc
                             where 1 = 1
                               and o.father_id = 1
                               and instr(p.organise_code, o.organise_Code) = 1
                               and p.flag = 0
                               and p.organise_id = u.organise_id(+)
                               and sc.channel_id(+) = p.channel_type
                             group by o.organise_id,
                                      o.organise_name,
                                      o.organise_code) a,
                           (select fid,
                                   organise_id,
                                   organise_code,
                                   sum(recommendTotal) recommendTotal,
                                   sum(recommendSuc) recommendSuc,
                                   count(distinct case
                                           when recommendTotal > 0 then
                                            organise_id
                                           else
                                            null
                                         end) onlinePoints,
                                   sum(vaildUser) vaildUser,
                                   sum(case
                                         when recommendSuc > 0 then
                                          1
                                         else
                                          0
                                       end) validPoints,
                                   sum(case
                                         when recommendSuc >= 50 then
                                          1
                                         else
                                          0
                                       end) activePoints,
                                   sum(case
                                         when decode(recommendTotal,
                                                     0,
                                                     0,
                                                     recommendSuc / recommendTotal) <= 0.1 then
                                          1
                                         else
                                          0
                                       end) warnPoints
                              from (select fid,
                                           organise_id,
                                           organise_code,
                                           sum(alls) recommendTotal,
                                           sum(suc) recommendSuc,
                                           sum(case
                                                 when suc > 0 then
                                                  1
                                                 else
                                                  0
                                               end) vaildUser
                                      from (select r.organise_id,
                                                   r.organise_code,
                                                   o.organise_id fid,
                                                   r.emp_no,
                                                   sum(r.recommend_total) alls,
                                                   sum(r.open_suc_total) suc
                                              from stat_recomend_day r,
                                                   sys_organise_info o
                                             where 1 = 1
                                               and o.father_id = 1
                                               and instr(r.organise_code,
                                                         o.organise_Code) = 1
                                             group by o.organise_id,
                                                      r.organise_id,
                                                      r.organise_code,
                                                      r.emp_no)
                                     group by organise_id, organise_code, fid) t
                             group by organise_id, organise_code, fid) b
                     where 1 = 1
                       and o.father_id = 1
                       and o.organise_id = a.organise_id(+)
                       and a.organise_id = b.fid(+)
                       and o.flag = '0'
                     group by o.organise_id,
                              o.organise_name,
                              o.organise_code,
                              pointsTotal,
                              userTotal))
     order by tn

  • 相关阅读:
    PHP中使用CURL实现GET和POST请求
    PHP 正则表达式匹配函数 preg_match 与 preg_match_all
    微信跳转黑科技:微信跳转技术让微信电商从此不缺流量
    PHP通过get方法获得form表单数据方法总结
    php获取微信基础接口凭证Access_token
    PHP命名空间与自动加载类详解
    PHP如何搭建百度Ueditor富文本编辑器
    PHP调用微博接口实现微博登录的方法示例
    PHP常用日期加减计算方法实例
    微信公众平台---带参数二维码生成和扫描事件
  • 原文地址:https://www.cnblogs.com/working/p/2918980.html
Copyright © 2020-2023  润新知