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

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


B
姓名 工号 部门


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


提示:试图执行的查询中不包括作为合计函数的一部分的特定表达式‘工号’ 怎么样能得到统计数据呢?
如:
李四 工号 出勤数 工资总额
...全文
90 点赞 收藏 7
写回复
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.姓名
回复
发帖
数据库相关
创建于2007-08-02

2451

社区成员

Delphi 数据库相关
申请成为版主
帖子事件
创建了帖子
2018-11-29 05:01
社区公告
暂无公告