+ -
当前位置:首页 → 问答吧 → 关于ACCESS表SQL语句查询多个值的问题 急。。。。在线等

关于ACCESS表SQL语句查询多个值的问题 急。。。。在线等

时间:2011-11-08

来源:互联网

客服名 评分
李四 3
张三 3
李四 2
老五 1
张三 3
老五 3
张三 1

现在我需要查询 每个客服的3分有几个,2分有几个,1分有几个,按每个客服的评分总和排名从高到低循环出来。


这个数据希望出的的结果是:

  3分 2分 1分 总分
  张三 2 0 0 6
  李四 1 1 0 5
  老五 1 0 1 4

不知道这样的查询语句应该怎么写,我现在只能写出每个客服的评分总和,可是没办法再查询每个客服的3分2分1分各有几个,,拜托各位大侠帮帮忙,小弟感激不敬啊!!!!

作者: tangcheng0   发布时间: 2011-11-08

可以双讯坏 第一个循环查询出每个人的姓名分数ID 按分数desc排序
第二个循环根据ID计算每个人的总分

输出显示内容

作者: hefeng_aspnet   发布时间: 2011-11-08

引用 1 楼 hefeng_aspnet 的回复:
可以双讯坏 第一个循环查询出每个人的姓名分数ID 按分数desc排序
第二个循环根据ID计算每个人的总分

输出显示内容

请问这位大哥,这样查询不能查出每个客服,3分2分1分各有几个的数据啊? 具体应该怎么做呢?

作者: tangcheng0   发布时间: 2011-11-08

http://forum.csdn.net/SList/Access/

作者: p2227   发布时间: 2011-11-08

如果和你第一个例子那样的表,我只能写出每次查询一个人,如果表和你第二个写的一样,那样就好做了. 你自己应该也可以写出来

作者: cweisledxianzai   发布时间: 2011-11-08

引用 4 楼 cweisledxianzai 的回复:
如果和你第一个例子那样的表,我只能写出每次查询一个人,如果表和你第二个写的一样,那样就好做了. 你自己应该也可以写出来


 <%Sql= "select top 10 ddkf,sum(pjpf) as pjpf from dingdan group by ddkf order by sum(pjpf) desc "

我现在只能写出按评分总和排名的语句出来。没办法查询3分2分1分各几个的语句出来。。。

作者: tangcheng0   发布时间: 2011-11-08

直接查询不知道唉,利用数组。你既然可以查询出每个客服的评分总合,那你就是能查出有几个客服,将这个客服名放入一个数组里,然后循环查询对应的评分,每次查询时判断一下,因为你已经知道有几个评分

例如客服数组a(2,4)
a(0,0) = "张三"
a(1,0) = "李四"
a(2,0) = "王五"
for i = 0 to UBound(a,1)  
  for j = 1 to 4
  a(i,j) = 0
  next
next
for i = 0 to UBound(a,1)
  csql = "select 评分 from table wehre 客服名 = '" a(i,0) & "'"
  rs.open csql,conn,1,1
  do while not rs.eof
  if rs(0) > 0 then
  a(i,rs(0)) = a(i,rs(0)) + 1
  end if
  rs.movenext
  loop
  rs.close
next

求总和
for i = 0 to UBound(a,1)
  a(i,4) = a(i,1)+a(i,2)+a(i,3)
Next

'---输出结果验证一下,这里没有排序
for i = 0 to UBound(a,1)
  for j = 0 to 4
  response.write a(i,j) & " "
  next
  response.write "<br>
next

数组排序你自己做咯

作者: zhpfaff   发布时间: 2011-11-08

用一个复合查询语句应该可以。只是这里不是数据库SQL版块,楼主可以到SQL SERVER或者ORACEL版块问这个问题。不必说是ACCESS,直接问就可以。这属于通用的内容,差别不大。

作者: theforever   发布时间: 2011-11-08

引用 6 楼 zhpfaff 的回复:
直接查询不知道唉,利用数组。你既然可以查询出每个客服的评分总合,那你就是能查出有几个客服,将这个客服名放入一个数组里,然后循环查询对应的评分,每次查询时判断一下,因为你已经知道有几个评分

例如客服数组a(2,4)
a(0,0) = "张三"
a(1,0) = "李四"
a(2,0) = "王五"
for i = 0 to UBound(a,1)
for j = 1 to 4……

这样感觉更加复杂化了。。没有更好的方法吗?

作者: tangcheng0   发布时间: 2011-11-08

还有大哥来帮忙吗?

作者: tangcheng0   发布时间: 2011-11-08

热门下载

更多