三表合集查询求助

freescy2002 2014-05-13 09:25:35
昨天晚上开这一帖,感谢这里的大侠帮助,小弟还有一请求,弄了一晚都没有出来
三个表分别如下
表a
class
1
2
3
表b
class_id sx b_u
1 1 1
1 2 1
2 4 1
2 7 2
表c
ud c_d pri
1 1 1
2 1 1
1 1 3
1 2 4
2 2 7
几个表关系说一下,表a中的class 跟表b中的 class_id 关联 sx字段就当是数量
表b中的 b_u跟表c的ud关联,表c中的c_d 跟表aclass关联 表a作为查询的主表 pri为c的要合计
现在要得出以下的结果,查询ud=1时的合计值
class ud sum(sx) sum(pri)
1 1 3 4
2 1 4 4
3 1


我是这样子写
select class,sum(sx)
,sum(pri)
from a left join b on class=class_id
left join c on b_u=ud and class_id=c_d and ud=1
group by class
这个感觉有问题,但找不出问题,谢谢大侠再帮助我一下
...全文
113 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
KeepSayingNo 2014-05-13
  • 打赏
  • 举报
回复
KeepSayingNo 2014-05-13
  • 打赏
  • 举报
回复

select t1.*,t2.pri from
(
    select class,SUM(sx) sx
    from a left join b on class=class_id
    where b_u=1
    group by class
) t1
left join
(
    select c_d,SUM(pri) pri from c
    where ud=1
   group by c_d
) t2
on t1.class=t2.c_d
freescy2002 2014-05-13
  • 打赏
  • 举报
回复
我是根据1楼的大侠执行出来的数据
xdashewan 2014-05-13
  • 打赏
  • 举报
回复
引用 2 楼 freescy2002 的回复:
不对的楼上大侠,出来的结果跟我写的一样的。 1 6 8 2 4 4
你class为1的数据有问题吧,再怎么看这sql就算错了sx也不会出6这个值啊
freescy2002 2014-05-13
  • 打赏
  • 举报
回复
不对的楼上大侠,出来的结果跟我写的一样的。 1 6 8 2 4 4
  • 打赏
  • 举报
回复
select class,sum(sx) ,sum(pri) from a left join b on class=class_id left join c on b_u=ud and class_id=c_d where ud=1 group by class

34,588

社区成员

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

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