求一个查询语句(distinct相关)

oolongTea 2006-10-21 05:53:11
员工表a
字段:
id, code,name,
id,编号,名字
1,001,黎明
2,002,刘德华
3,003,张学友


分数表b
id,员工id,分数
1,001,100
2,001,200
3,002,50
4,002,60
5,003,800

想得到这样的结果
员工id,员工名字,总分数,评分次数
001,黎明,300,2
002,刘德华,110,2
003,张学友,800,1
...全文
187 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
oolongTea 2006-10-23
  • 打赏
  • 举报
回复
多谢各位高手!

我采用的是在程序里先select 0 as 总分,0 as 次数
再执行一次查询每个人的总分,次数补上去,虽然结果也正确,却白白浪费了几个小时!
wwwwb 2006-10-23
  • 打赏
  • 举报
回复
1 select a.code as 员工ID , a.name as 员工名字, sum(b.分数) as 总分数,count(b.员工id) as 评分次数
from a left join b on a.code = b.员工id
group by a.code , a.name
order by a.code
2 select a.code as 员工ID , a.name as 员工名字, dsum("分数","b","员工id=" & a.code)
as 总分数,dcount("*","b","员工id=" & a.code) as 评分次数
from a order by a.code



OracleRoob 2006-10-22
  • 打赏
  • 举报
回复
用A、B表进行关联,然后根据编号、名字分组即可。

当然,还有其它实现方式,如:使用子查询、使用域函数等等。

OracleRoob 2006-10-22
  • 打赏
  • 举报
回复
如果是第二行,自己把语句的中的列替换一下即可。
OracleRoob 2006-10-22
  • 打赏
  • 举报
回复
A表的列是第一行?还是第二行?


如果是第一行,使用如下SQL:

select a.code as 员工ID , a.name as 员工名字, sum(b.分数) as 总分数,count(b.员工id) as 评分次数
from a left join b on a.code = b.员工id
group by a.code , a.name
order by a.code
liuyann 2006-10-21
  • 打赏
  • 举报
回复
select a.code , a.name, sum(b.分数),count(b.员工id)
from a left join b on a.code = b.员工id
group by a.code , a.name

7,714

社区成员

发帖
与我相关
我的任务
社区描述
Microsoft Office Access是由微软发布的关系数据库管理系统。它结合了 MicrosoftJet Database Engine 和 图形用户界面两项特点。
社区管理员
  • Access
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧