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

SQL查询语句问题,请大家帮忙看一下

qinyun 发布于 2008-06-08 19:50, 2091 次点击
我现在有一个表如下
user_feiyong(应收)  weixiu_feiyong(实收) chuangshou(创收) paodanfei(单费) paidan_name(工程师) keping(客户评价)
只有本站会员才能查看附件,请 登录


如今我想用查询语句将其汇总

目前我已能汇总user_feiyong(应收)  weixiu_feiyong(实收) chuangshou(创收) paodanfei(单费)也就是数字类型的汇总已完成,但不能统计客户评价这一栏数量,我要的结果是:

只有本站会员才能查看附件,请 登录


非常满意及比较满意(满意)    不满意   投诉   未联系上
           80%                10%     1%      9%


<%
dim xingming,date1,date2
xingming=request("paidan_name")
IF request("baoxiu_date1")<>"" And request("baoxiu_date2")<>"" Then
   date1=request("baoxiu_date1")
   date2=request("baoxiu_date2")
End IF
IF request("date1")<>"" And request("date2")<>"" Then
   date1=request("date1")
   date2=request("date2")
End IF

sql="select paidan_name,count(bx_id) as danshu,sum(user_feiyong) as user_feiyong,sum((chuangshou))as chuangshou,sum(weixiu_feiyong) as  weixiu_feiyong,sum(paodanfei) as paodanfei from baoxiu  where  baoxiu_date  between #"&date1&"#  and  #"&DateAdd("d",1,date2)&"#  group by paidan_name "
Set rs= Server.CreateObject("ADODB.Recordset")
rs.open sql,conn,1,1
%>

[[it] 本帖最后由 qinyun 于 2008-6-8 19:56 编辑 [/it]]
12 回复
#2
qinyun2008-06-09 23:02
怎么就没有一位高手帮我一把呢.
#3
igbh2008-06-09 23:54
我不是高手,只好帮你顶一下。
#4
放纵思想2008-06-10 08:37
这个查询起来,比来费劲.
要用子查询.
#5
qq874444992008-06-10 15:51
显然是个投票系统嘛``

你找个投票系统看看`!
#6
qinyun2008-06-10 17:48
[bo][un]放纵思想[/un] 在 2008-6-10 08:37 的发言:[/bo]

要用子查询.


能不能说祥细点,子查询语句怎么写呢,能帮写一下吗
#7
永夜的极光2008-06-10 19:42
非常满意及比较满意(满意)    不满意   投诉   未联系上
           80%                10%     1%      9%

这是什么意思?
我举个例子,这个工程师有一个非常满意,两个投诉,3个未联系上,最终的评价你怎么算出来?

PS: 最好把数据库精简一下传上来,有几组必要数据就行,不要太多,不然文件太大.直接拿数据库试比较方便
#8
xinzheng2008-06-10 20:17
逻辑不是很清楚!!!!!!!!!!1111
#9
anjincheng2008-06-10 21:55
你的问题不是很明确
我理解半天,写出下面代码,不晓得是不是你要的结果!
想法:用<%=rs.recordcount%>来计数
<%
    set rs=Server.CreateObject("ADODB.RecordSet")
    sql="select 客户评价 from [表名] WHERE  客户评价 like '非常满意'"
    rs.open sql,conn,1,1
    if rs.recordcount<>0 then
       do while not rs.eof
%>
        非常满意共有<%=rs.recordcount%>条
<%       
    rs.movenext
      loop
    end if
 %>
<%
    set rs=Server.CreateObject("ADODB.RecordSet")
    sql="select 客户评价 from [表名] WHERE  客户评价 like '比较满意'"
    rs.open sql,conn,1,1
    if rs.recordcount<>0 then
       do while not rs.eof
%>
        比较满意共有<%=rs.recordcount%>条
<%       
    rs.movenext
      loop
    end if
 %>
#10
qinyun2008-06-11 14:00
[bo][un]永夜的极光[/un] 在 2008-6-10 19:42 的发言:[/bo]

非常满意及比较满意(满意)    不满意   投诉   未联系上
           80%                10%     1%      9%

这是什么意思?
我举个例子,这个工程师有一个非常满意,两个投诉,3个未联系上,最终的评价你怎么算出来 ...


这里的算法是:非常满意及比较满意(满意)占(比如45条)   不满意占(比如10条)  总数(比如65条)  那么结果是:满意45条/总数65条  =69%  不满意10条/总数65条  =15%

单个工程师的百分比我能算的出来,但是不能放到下面的这个表中,因为下面表中的工程师数量是不固定的,现在我想要联合下面这句来联合查询,用一条语句完成这个统计  
sql="select paidan_name,count(bx_id) as danshu,sum(user_feiyong) as user_feiyong,sum((chuangshou))as chuangshou,sum(weixiu_feiyong) as  weixiu_feiyong,sum(paodanfei) as paodanfei from baoxiu  where  baoxiu_date  between #"&date1&"#  and  #"&DateAdd("d",1,date2)&"#  group by paidan_name "
只有本站会员才能查看附件,请 登录


最终达到的效果如下:

工程师  开始日期  终止日期  count(单数) count(一般) count(满意) count(投诉) count(未访)  sum(应收费用)   sum(实收费用)     sum(创收费用)    sum(服务单费)

[[it] 本帖最后由 qinyun 于 2008-6-11 14:16 编辑 [/it]]

[[it] 本帖最后由 qinyun 于 2008-6-11 14:18 编辑 [/it]]
#11
qinyun2008-06-11 14:04
回复 9# anjincheng 的帖子
anjincheng你的代码我只能单个的算出数量,不能联合下面语句查询,但我还是谢谢你的帮助,谢谢!

sql="select paidan_name,count(bx_id) as danshu,sum(user_feiyong) as user_feiyong,sum((chuangshou))as chuangshou,sum(weixiu_feiyong) as  weixiu_feiyong,sum(paodanfei) as paodanfei from baoxiu  where  baoxiu_date  between #"&date1&"#  and  #"&DateAdd("d",1,date2)&"#  group by paidan_name "
#12
zhangyao32872008-06-11 16:02
头又疼了,.............
#13
永夜的极光2008-06-11 17:26
[bo][un]qinyun[/un] 在 2008-6-11 14:04 的发言:[/bo]

anjincheng你的代码我只能单个的算出数量,不能联合下面语句查询,但我还是谢谢你的帮助,谢谢!

sql="select paidan_name,count(bx_id) as danshu,sum(user_feiyong) as user_feiyong,sum((chuangshou))as chuangsho ...

你这句也只能求出每个工程师的数据吧?
其实你总计根本没必要放在sql语句里面来完成,你把每个工程师的记录都查询出来,然后肯定要用循环来显示,在循环的时候,弄几个变量,然后累加起来就好了
1