当前位置: 代码迷 >> Sql Server >> 三表合集查询
  详细解决方案

三表合集查询

热度:72   发布时间:2016-04-24 10:44:43.0
三表合集查询求助
昨天晚上开这一帖,感谢这里的大侠帮助,小弟还有一请求,弄了一晚都没有出来
三个表分别如下
表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
这个感觉有问题,但找不出问题,谢谢大侠再帮助我一下
------解决方案--------------------

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
  相关解决方案