您的位置:首页 > 数据库 > Oracle

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

2013-02-20 16:43 295 查看
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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: