问个sql语句,access数据库

TaoTaoYou 2009-07-08 12:59:06
员工表:
ID name


销售表:
ID shares(提成金额) staff_id(对应的员工id)




我想实现的是读取员工表所有记录,同时汇总该员工所有提成金额,谢谢
...全文
68 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
qizhicong2 2009-07-08
  • 打赏
  • 举报
回复
哪你再加一个CASE好了.
  • 打赏
  • 举报
回复
用了联查和group by 不能用*
你要取字段就只能一个个列出来
TaoTaoYou 2009-07-08
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 shenzhenNBA 的回复:]
试看...

select a.[id], a.[name], (case when a.[id]=b.[staff_id] then sum(b.[shares]) else 0 end) as [Money] from 员工表 a, 销售表 b where a.[id] =b.[staff_id] group by a.[name]
[/Quote]

说了我还要读取其他字段的内容,,

如果加上a*这个又报上面的错误

郁闷啊,
bobo_xi 2009-07-08
  • 打赏
  • 举报
回复
在JION ON的时候 有个LEFT RIGHT 这个你知道吧。具体怎么写我忘记了。。
反正就是读取左边表,或者右边表的全部内容。
shenzhenNBA 2009-07-08
  • 打赏
  • 举报
回复
试看...

select a.[id], a.[name], (case when a.[id]=b.[staff_id] then sum(b.[shares]) else 0 end) as [Money] from 员工表 a, 销售表 b where a.[id] =b.[staff_id] group by a.[name]
街头小贩 2009-07-08
  • 打赏
  • 举报
回复
try:
SELECT a.*,(CASE WHEN b.shares IS NULL THEN 0 ELSE SUM(b.shares) END) from 员工表 a,销售表 b WHERE a.id=b.staff_id GROUP BY a.name
TaoTaoYou 2009-07-08
  • 打赏
  • 举报
回复
Microsoft JET Database Engine 错误 '80040e21'

不能将已选定 '*' (a) 的字段组合。

/systemset/staff_pay.asp,行 15
街头小贩 2009-07-08
  • 打赏
  • 举报
回复
哪你再加一个CASE好了.
TaoTaoYou 2009-07-08
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 sy_binbin 的回复:]
select a.*,sum(b.shares) from 员工表 a,销售表 b where a.id=b.staff_id group by a.name
[/Quote]

这个语句好像读取不到没有销售记录的员工,, 我想实现的是,读取所有员工然后附上提成总额,如果没有销售记录就显示提成为零 ,谢谢
sy_binbin 2009-07-08
  • 打赏
  • 举报
回复
select a.*,sum(b.shares) from 员工表 a,销售表 b where a.id=b.staff_id group by a.name
TaoTaoYou 2009-07-08
  • 打赏
  • 举报
回复
问题是我还要读取员工记录表的其他字段,这样好像读不取啊
lzp4881 2009-07-08
  • 打赏
  • 举报
回复
select a.name,sum(b.shares) from 员工表 a,销售表 b where a.id=b.staff_id group by a.name

28,406

社区成员

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

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