注册 登录
编程论坛 ASP技术论坛

关于完成率排名的问题。

hejunbo 发布于 2019-01-05 17:17, 2443 次点击
数据库
区域    客户     续年费      续融合
城关    客户1      无          无
城关    客户2      有          无
城关    客户3      无          有
城中村  客户4      无          无
城中村  客户5      有          无
城中村  客户5      无          无
农村    客户6      无          无
农村    客户7      无          无
农村    客户8      无          无
我想做一个关于各区域客户维系排名的界面(关系是能够按维系率高低排名。不管是续年缴还是续融合都算维系成功。)
得到如下:
区域  客户数  维系成功  成功率
城关    3        2        66%
城中村  3        1        33%
农村    3        0         0%
这段SQL语句怎么写,或是ASP代码怎么写?
1 回复
#2
ke爱的小tu子2021-02-12 15:53
区域的成功率=区域成功客户数量/区域客户总数。
区域成功客户数量=区域续年费成功人数+区域续融合人数
新建一张表,表名“区域”,包含字段“区域”,“客户数量”,“维系成功”,“成功率”。并且“区域”表里面的区域已经全部统计好,“区域”字段是不重复字段。
第一张表的名字叫什么?你没说。我暂时把你给的第一张表名字叫做“表1”
接下来是asp代码。
<%
sub conn_open(conn,path)
    set conn=server.createobject("adodb.connection")
    conn.connectionstring="Provider = Microsoft.Jet.OLEDB.4.0;Data Source="&server.mappath(path)
    conn.open
end sub
sub conn_close(conn)
    conn.close
    set conn=nothing
end sub
sub rs_open1(rs,sql)
    set rs = server.createobject("adodb.recordset")
    rs.open sql,conn,1,1
end sub
sub rs_open3(rs,sql)
    set rs = server.createobject("adodb.recordset")
    rs.open sql,conn,1,3
end sub
sub rs_close(rs)
    rs.close
    set rs=nothing
end sub
%>
'-------------------------------------------------华丽的分割线------------------------------------------------------
<%
call conn(conn,"数据库.mdb")
sql="select * from 区域"
call rs_open3(rs,sql)
do while rs.eof
    sql2="select * form 表1 where 区域="&""""&rs("区域")&""""
    call rs_open1(rs2,sql2)
    cgkhsl=0'成功客户数量
    do while rs2.eof
        if rs2("续年费")="有" or rs2("续融合")="有" then
            cgkhsl=cgkhsl+1
        end if
        rs2.movenext
    loop
        khsl=rs2.recordcount'某个区域的客户数量
    call rs_close(rs2)
    rs("客户数量")=khsl
    rs("维系成功")=cgkhsl
    if khsl<>0 then
        rs("成功率")=cgkhsl/khsl*100&"%"
    else
        rs("成功率")=0
    end if
    khsl=0'把客户数量清空
    rs.movenext
loop
call rs_close
cll conn_close(conn)
%>

至于成功率排行的问题,这个就太简单了,查询,orderby成功率,然后分页显示就ok了。



[此贴子已经被作者于2021-2-12 15:56编辑过]

1