多关系表求和sum的问题

foshan 2008-03-06 08:33:05
有三个数据表,分别为 A 、AA 、AAA ,表AA、表AAA的外键 与 表 A 的主键ID 关联
表A
ID name
1 me

表AA
ID A_ID L1
1 1 10
2 1 10
3 1 10

表AAA
ID AA_ID L2
1 1 15

现在要求 字段L1、字段L2 之和, SQL语句如下:
select sum(L1)as s,sum(L2) as ss from A
left join AAA on A.ID=AA_ID
left join AA on A.ID=A_ID
where A.ID=1
目的是想实现求和后 sum(L1) =30 、 sum(L2) =15,但执行查询后得出的结果是sum(L1) =30 、 sum(L2) =45 。sum(L1)求和就正确,但sum(L2)求和就比要的数大了3倍。而且这个增加的倍数是随着表AA中相同的A_ID的数量成正比的。
请问,如何写出正确的SQL语句才能求出 sum(L1) =30 、 sum(L2) =15 ,谢谢大家!
...全文
77 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
pt1314917 2008-03-06
  • 打赏
  • 举报
回复

select id,name,l1,l2 from a
left join (select a_id,sum(l1)l1 from aa group by a_id)b on a.id=b.a_id
left join (select aa_id,sum(l2)l2 from aa group by aa_id)c on a.id=c.aa_id

34,593

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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