请教:如何写 sql 分类统计

weixin_39472492 2020-05-07 09:33:18
有两张表
员工名单:员工ID 员工姓名
员工差旅费记录: 员工ID 日期 差旅费

希望查询得到
员工差旅费统计表:员工姓名 差旅费统计
...全文
411 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
核爆可可 2020-05-09
  • 打赏
  • 举报
回复
建个视图多好
weixin_39472492 2020-05-08
  • 打赏
  • 举报
回复
@三楼一郎 一个left join没有问题,两个left join就无法通过;
weixin_39472492 2020-05-08
  • 打赏
  • 举报
回复
@三楼一郎 将您提供的前两个方案试了一下,方案二能够通过,但是得到的一个交集,不是完整的表。 a表是基础表,因此感觉应该采用方案一,但就是通不过,也不知什么原因,总提示:"语法错误 (操作符丢失)" 方案三觉得有点复杂,就没有试了 谢谢老师!
IFFQ 2020-05-08
  • 打赏
  • 举报
回复
select 员工表.员工ID 差旅费 from 员工表 join 员工差旅表 on 员工表.员工ID == 员工差旅表.员工ID
weixin_39472492 2020-05-08
  • 打赏
  • 举报
回复
@三楼一郎 非常感谢!
weixin_39472492 2020-05-08
  • 打赏
  • 举报
回复
终于找到原因了 Access使用join进行多个表联合查询要加括号
三楼の郎 2020-05-08
  • 打赏
  • 举报
回复
这样试试 select a.员工姓名,b.s,c.考核等级 from ((员工名单表 as a left join 员工考核表 as c on a.员工ID=c.员工ID) left join (select 员工ID,sum(差旅费) as s from 员工差旅费记录 group by 员工ID) as b on a.员工ID=b.员工ID) 用的是Access吧
三楼の郎 2020-05-07
  • 打赏
  • 举报
回复
select a.员工姓名,b.s from 员工名单表 as a inner join (select 员工ID,sum(差旅费) as s from 员工差旅费记录 group by 员工ID) as b on a.员工ID=b.员工ID
三楼の郎 2020-05-07
  • 打赏
  • 举报
回复
select a.员工ID,a.员工姓名,b.s from 员工名单表 as a inner join (select 员工ID,sum(差旅费) as s from 员工差旅费统计表 group by 员工ID) as b on a.员工ID=b.员工ID
三楼の郎 2020-05-07
  • 打赏
  • 举报
回复
select a.员工ID,a.员工姓名,b.s from 员工名单表 as a inner join (select 员工ID,sum(差旅费) as s from 员工差旅费统计表) as b on a.员工ID=b.员工ID
三楼の郎 2020-05-07
  • 打赏
  • 举报
回复
select a.员工姓名,b.s,c.考核等级 from 员工名单表 as a left join 员工考核表 as c on a.员工ID=c.员工ID left join (select 员工ID,sum(差旅费) as s from 员工差旅费记录 group by 员工ID) as b on a.员工ID=b.员工ID 或者 select a.员工姓名,b.s,c.考核等级 from 员工名单表 as a,员工考核表 as c,(select 员工ID,sum(差旅费) as s from 员工差旅费记录 group by 员工ID) as b where a.员工ID=b.员工ID and a.员工ID=c.员工ID 或者 select a.员工姓名,a.考核等级,b.s from (select a.员工ID,a.员工姓名,c.考核等级 from 员工名单表 as a left join 员工考核表 as c on a.员工ID=c.员工ID) as a left join (select 员工ID,sum(差旅费) as s from 员工差旅费记录 group by 员工ID) as b on a.员工ID=b.员工ID
weixin_39472492 2020-05-07
  • 打赏
  • 举报
回复
下面语句始终过不了,错在哪里呢? select a.员工姓名,b.s,c.考核等级 from 员工名单表 as a,员工考核表 as c left join (select 员工ID,sum(差旅费) as s from 员工差旅费记录 group by 员工ID) as b on a.员工ID=b.员工ID where a.员工ID=c.员工ID
weixin_39472492 2020-05-07
  • 打赏
  • 举报
回复
@三楼一郎 谢谢指点,试了一下,通过了! 又另外将a表改为2表联查,即 select a.员工姓名,b.s,c.考核等级 from 员工名单表 as a,员工考核表 as c join (select 员工ID,sum(差旅费) as s from 员工差旅费记录 group by 员工ID) as b on a.员工ID=b.员工ID where a.员工ID=c.员工ID 就报错了,不知道为何?

28,390

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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