昨天晚上开这一帖,感谢这里的大侠帮助,小弟还有一请求,弄了一晚都没有出来
三个表分别如下
表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