请教一个多表分组查询的SQL该怎么写

jiaping108 2017-02-13 07:37:08
部门表a{
depid;
depname
}
部门员工表b{
usersid;
depid;
}
员工工资表c{
upid;
usersid;
payment;
}
查询结果:
部门名称(depname) 部门员工数(count(usersid) group by depid) 部门工资总额(sum(payment))

大概需求就是这样,目前写的有些问题,请大伙给看看有什么比较好的写法,结果就是需要统计出来部门的员工数以及部门的总工资
...全文
159 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
zjcxc 2017-02-14
  • 打赏
  • 举报
回复
SELECT *
FROM 部门表 A,
(
	SELECT B.depid, COUNT(*) AS 员工数, SUM(C.payment) AS 工资总数
	FROM  部门员工表 B, 员工工资表 C
	WHERE C.usersid = B.usersid
	GROUP BY B.depid
) D
WHERE D.depid = A.depid
青鬆下的坚躯 2017-02-14
  • 打赏
  • 举报
回复
select a.depname, count(b.usersid), sum(c.payment) from a right join b on b.depid=a.depid left join c on c.usersid=b.usersid group by a .depid
jiaping108 2017-02-13
  • 打赏
  • 举报
回复
select d.ddepname,count(distinct d.dusersid),sum(d.dpayment) from (select a.depname as ddepname,b.usersid as dusersid,c.payment as dpayment from a,b,c where a.depid=b.depid and b.usersid=c.usersid) d group by d.ddepname 改了下,家里电脑没装数据库,亲们帮忙看下是否有问题,该怎么改哈
jiaping108 2017-02-13
  • 打赏
  • 举报
回复
select d.ddepname,count(d.dusersid),sum(d.dpayment) from (select a.depname as ddepname,b.usersid as dusersid,c.payment as dpayment from a,b,c where a.depid=b.depid and b.usersid=c.usersid) d group by d.ddepname 我的思路大概是这样,亲们看看应该怎么写才好哈,谢谢啦

56,673

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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