如用SQL语句进行多表关联汇总 30fredrickhu]

发布时间:2017-3-24 14:13:40 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"如用SQL语句进行多表关联汇总 30fredrickhu]",主要涉及到如用SQL语句进行多表关联汇总 30fredrickhu]方面的内容,对于如用SQL语句进行多表关联汇总 30fredrickhu]感兴趣的同学可以参考一下。

  A表      ID    名称      1        c             2    d         3    e        4    f             B表      ID      名称     数量        1         c       1             2         d       1           3         e       1          4         e       1            5         f       2                C表      ID      名称     数量        1         a       1             2         c       1           3         e       1          4         e       1            5         f       2   1         a       1             2         c       1           3         e       1          4         e       1            5         f       2 返回   名称    A表总数量 c表总数量    c        1         2    d        1         0    e        2         4    f        2         2 如何用SQL语句达到目标

select a.名称,sum(a.数量) as A表总数量,isnull(sum(c.数量),0) as c表总数量 from a left join c on a.名称=c.名称

引用 1 楼 csdyyr 的回复:SQL codeselecta.名称,sum(a.数量)asA表总数量,isnull(sum(c.数量),0)asc表总数量fromaleftjoincona.名称=c.名称 select a.名称,isnull(sum(b.数量),0) as A表总数量,isnull(sum(c.数量),0) as c表总数量 from a left join b on a.名称=b.名称 left join c on a.名称=c.名称

select   a.名称,   isnull(b.数量,0) B表总数量,   isnull(c.数量,0) C表总数量 from    A left join   (select 名称,sum(数量) as 数量 from B group by 名称) b on   a.名称=b.名称 left join    (select 名称,sum(数量) as 数量 from C group by 名称) c on   a.名称=c.名称

select a.名称,isnull(sum(b.数量),0) as A表总数量,isnull(sum(c.数量),0) as c表总数量 from a left join b on a.名称=b.名称 left join c on a.名称=c.名称 group by a.名称

select 名称,         sum( bnum ) as b表总数量,         sum( cnum ) as c表总数量 from (        select a.名称, isnull(b.数量, 0) as bnum, isnull(c.数量, 0 ) as cnum           from a left jion b on b.名称 = a.名称                   left jion c on c.名称 = a.名称  ) temp_t group by 名称

create table a(ID int,名称 varchar(1)) create table b(ID int,名称 varchar(1),数量 int) create table c(ID int,名称 varchar(1),数量 int) insert into a  select 1,'c' union all select 2,'d' union all select 3,'e' union all select 4,'f' insert into b select 1,'c',1 union all select 2,'d',1 union all select 3,'e',1 union all select 4,'e',1 union all select 5,'f',2 insert into c select 1,'a',1 union all          select 2,'c',1 union all        select 3,'e',1 union all      select 4,'e',1 union all        select 5,'f',2 union all select 1,'a',1 union all          select 2,'c',1 union all        select 3,'e',1 union all      select 4,'e',1 union all        select 5,'f',2 SELECT a.名称,ISNULL(b.总数量,0) AS 'A表总数量',ISNULL(c.总数量,0) AS 'C表总数量' FROM a left join (SELECT  名称,SUM(数量) 总数量 FROM b GROUP BY 名称) b on a.名称 = b.名称 left join (SELECT  名称,SUM(数量) 总数量 FROM c GROUP BY 名称) c on a.名称 = c.名称 /* c 1 2 d 1 0 e 2 4 f 2 4 */

表真多啊,用左连接

上一篇:------------五十种巧妙优化SQL Server数据库的方法(转)------------ 20fredrickhu]
下一篇:怎么在mysql中建一个数据库表字段,用来判断插入时间小于系统当前时间 20vcchen_bo_qiang]

相关文章

相关评论

本站评论功能暂时取消,后续此功能例行通知。

一、不得利用本站危害国家安全、泄露国家秘密,不得侵犯国家社会集体的和公民的合法权益,不得利用本站制作、复制和传播不法有害信息!

二、互相尊重,对自己的言论和行为负责。

好贷网好贷款