qinyun 发表于 2008-6-8 19:50

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

我现在有一个表如下
user_feiyong(应收)  weixiu_feiyong(实收) chuangshou(创收) paodanfei(单费) paidan_name(工程师) keping(客户评价)
[attach]35333[/attach]

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

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

[attach]35334[/attach]

非常满意及比较满意(满意)    不满意   投诉   未联系上
           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]]

qinyun 发表于 2008-6-9 23:02

怎么就没有一位高手帮我一把呢.

igbh 发表于 2008-6-9 23:54

我不是高手,只好帮你顶一下。

放纵思想 发表于 2008-6-10 08:37

这个查询起来,比来费劲.

要用子查询.

qq87444499 发表于 2008-6-10 15:51

显然是个投票系统嘛``

你找个投票系统看看`!

qinyun 发表于 2008-6-10 17:48

[quote][bo][un]放纵思想[/un] 在 2008-6-10 08:37 的发言:[/bo]

要用子查询. [/quote]

能不能说祥细点,子查询语句怎么写呢,能帮写一下吗

永夜的极光 发表于 2008-6-10 19:42

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

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

PS: 最好把数据库精简一下传上来,有几组必要数据就行,不要太多,不然文件太大.直接拿数据库试比较方便

xinzheng 发表于 2008-6-10 20:17

逻辑不是很清楚!!!!!!!!!!1111

anjincheng 发表于 2008-6-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
%>

qinyun 发表于 2008-6-11 14:00

[quote][bo][un]永夜的极光[/un] 在 2008-6-10 19:42 的发言:[/bo]

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

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

这里的算法是:非常满意及比较满意(满意)占(比如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 "
[attach]35394[/attach]

最终达到的效果如下:

工程师  开始日期  终止日期  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]]

qinyun 发表于 2008-6-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 "

zhangyao3287 发表于 2008-6-11 16:02

头又疼了,.............

永夜的极光 发表于 2008-6-11 17:26

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

页: [1]

编程论坛