两表联合查询时为什么提示‘’试图执行的查询中不包括作为合计函数的一部分的特定表达式‘’??

sixgj 2018-11-29 05:01:35
两个表
A
姓名 出勤日期 工资


B
姓名 工号 部门


select 工号,姓名,count(*) as 总出勤, sum(工资)from a,b where a.姓名=B.姓名


提示:试图执行的查询中不包括作为合计函数的一部分的特定表达式‘工号’ 怎么样能得到统计数据呢?
如:
李四 工号 出勤数 工资总额
...全文
171 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
sixgj 2018-11-30
  • 打赏
  • 举报
回复
找到问题了:规则里是这么写的:如果语句中包含有聚合函数,那么语句select中除了聚合函数列外,其它所有列一定要在group by中。
sixgj 2018-11-30
  • 打赏
  • 举报
回复
加了,还是同样的提示。奇怪了。
秋天之落叶 2018-11-29
  • 打赏
  • 举报
回复
a表
张三 11.29 10
李四 11.29 15
王五 11.29 17
李四 11.28 20
NULL NULL NULL

b表
张三 001 1
李四 002 2
王五 003 2
NULL NULL NULL

select B.工号,B.姓名,count(*) as 总出勤, sum(A.工资) as 工资 from a,b
where a.姓名=B.姓名
group by B.工号,B.姓名

工号 姓名 总出勤 工资
002 李四 2 35
003 王五 1 17
001 张三 1 10
秋天之落叶 2018-11-29
  • 打赏
  • 举报
回复
group by B.工号,B.姓名
这句加了吗?我的没问题啊
sixgj 2018-11-29
  • 打赏
  • 举报
回复
不行啊。把表名写上也是一样的提示。是不是联合查询时一表有计算的,另一表的字段不能提取记录?
秋天之落叶 2018-11-29
  • 打赏
  • 举报
回复
select B.工号,B.姓名,count(*) as 总出勤, sum(A.工资)from a,b
where a.姓名=B.姓名
group by B.工号,B.姓名
秋天之落叶 2018-11-29
  • 打赏
  • 举报
回复
select B.工号,A.姓名,count(*) as 总出勤, sum(A.工资)from a,b
where a.姓名=B.姓名
group by b.工号,b.姓名

2,507

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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