三张表用union all和SUM相加,比如有a b c三表,每个表里都查询出ID MC SL 例如
a表
ID MC SL
100 苹果 1
101 梨子 3
b表
ID MC SL
100 苹果 4
101 梨子 2
c表
100 苹果 2
101 梨子 2
用下面语句
select id,mc,sum(s)
from
(select id,mc,sl s from a
union all
select id,mc,sl s from b
union all
select id,mc,sl s from b)
这样就可以得到 他们苹果 梨子这些相加的总数
ID MC SL
100 苹果 7
101 梨子 7
但是我现在想得出这样一个结果,就是得出结果中增加有a表和b表 SL的相加 以及c表的SL,就是如下结果
ID MC SUM(SL(a表+b表结果)) SUM(SL(c表结果)) SUM(sl(总的数量结果))
100 苹果 5 2 7
101 梨子 5 2 7
谢谢大家,大概就是这个意思,有知道告诉下我
------解决方案--------------------
- SQL code
create table a (id number(5),mc varchar2(10),sl number(5));insert into a values (100,'苹果',1);insert into a values (101,'梨子',3);create table b (id number(5),mc varchar2(10),sl number(5));insert into b values (100,'苹果',4);insert into b values (101,'梨子',2);create table c (id number(5),mc varchar2(10),sl number(5));insert into c values (100,'苹果',2);insert into c values (101,'梨子',2);commit;select a.id,a.mc,sum(a.sl+b.sl) s1,sum(c.sl) s2,sum(a.sl+b.sl+c.sl) s3from a,b,cwhere a.id=b.id and a.id=c.idgroup by a.id,a.mcorder by a.id id mc s1 s2 s3----------------------------------------------1 100 苹果 5 2 72 101 梨子 5 2 7