access 中用 sum 后 order by ,没有预计效果。。。

huanhuan30 2012-02-14 01:30:01
select TPerson.fPersonId, TPerson.fPersonName,
(select sum(fDetailMark) from Tdetail
where fDetailPersonId = fPersonId) as sumMark from TPerson order by 'sumMark' desc


有2张表:
1.TPerson 表里有 fPersonID,fPersonName
2.TDetail 表里有 fDetailPersonId,可以从 TPerson 中查到fPersonName


上面的语句我想把 detail 表中所有名字和相同的分数汇总,然后用这个汇总的成绩排序。
但是结果排不出。。一点效果都没有 。。。。
...全文
128 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
ACMAIN_CHM 2012-02-14
  • 打赏
  • 举报
回复

建议你列出你的表结构,并提供测试数据以及基于这些测试数据的所对应正确结果。
参考一下这个贴子的提问方式http://topic.csdn.net/u/20091130/20/8343ee6a-417c-4c2d-9415-fa46604a00cf.html
wwwwb 2012-02-14
  • 打赏
  • 举报
回复
select b.TPersonName, sum(a.fDetailMark) from TDetail a
inner join TPerson b on a.PersonId=b.fDetailPersonId

group by b.TPersonName order by 2 desc
huanhuan30 2012-02-14
  • 打赏
  • 举报
回复
select fDetailPersonId, sum(fDetailMark) from TDetail group by fDetailPersonId order by 2 desc

我想知道怎么把 fDetailPersonId 换成 TPerson 表里面 的 TPersonName(对应唯一的PersonId = fDetailPersonId)。
huanhuan30 2012-02-14
  • 打赏
  • 举报
回复
感觉没用啊。怎么回事儿啊。。。。。。
ACMAIN_CHM 2012-02-14
  • 打赏
  • 举报
回复
select TPerson.fPersonId, TPerson.fPersonName,
(
select sum(fDetailMark)
from Tdetail
where fDetailPersonId = fPersonId
) as sumMark
from TPerson
order by 3 desc
wwwwb 2012-02-14
  • 打赏
  • 举报
回复
select TPerson.fPersonId, TPerson.fPersonName,
(select sum(fDetailMark) from Tdetail
where fDetailPersonId = fPersonId) as sumMark from TPerson order by sumMark desc
OR
select TPerson.fPersonId, TPerson.fPersonName,
(select sum(fDetailMark) from Tdetail
where fDetailPersonId = fPersonId) as sumMark from TPerson order by 3 desc

7,712

社区成员

发帖
与我相关
我的任务
社区描述
Microsoft Office Access是由微软发布的关系数据库管理系统。它结合了 MicrosoftJet Database Engine 和 图形用户界面两项特点。
社区管理员
  • Access
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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