首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

两表联接汇总数目

2014-01-14 
两表连接汇总数目1.表A:WL物料 ZJ质检1010302402+C是1010302402+B否1011102402+E是2.表B:BM编码PH

两表连接汇总数目
1.表A:
WL<物料> ZJ<质检>
1010302402+C   是
1010302402+B   否
1011102402+E   是

2.表B:
BM<编码>        PH<票号>  GYS<供应商>   RKS<入库数>
1010302402+C  8A9-2       JNN     100
1010302402+C  8A9-2       JNN     100
1011102402+E  8A9-6       JNN     200
1011102402+E  9C9-3        BM     200
1011102402+E  9C9-3        BM     300
1010302402+B   8A9-2        CC     400
1010302403+B  8A9-2        CC     100
1010302403+B  8A9-2        CC     100

3.WL<物料>和BM<编码>关联AB表,
要根据BM<编码>PH<票号>GYS<供应商>三者完全相同来汇总数目。
需要质检的生成一张质检表1,不需要质检的生成非质检表2。
怎么写sql语句,谢谢大神们:
质检表1:
BM<编码>           PH<票号>    GYS<供应商>   RKS<入库数>
1010302402+C        8A9-2   JNN          200
1011102402+E    8A9-6   JNN          200
1011102402+E    9C9-3    BM          500
非质检表2:
BM<编码>           PH<票号>    GYS<供应商>  RKS<入库数>
1010302403+B    8A9-2    CC           600
[解决办法]
试试这个:


--1.第一个问题
select BM,PH,GYS,sum(RKS) as RKS
from 表B
where BM in (select WL 表A where ZJ = '是')
group by BM,PH,GYS


--2.第二个问题
select BM,PH,GYS,sum(RKS) as RKS
from 表B
where BM in (select WL 表A where ZJ = '否')
group by BM,PH,GYS

[解决办法]

-- 质检表1
select b.BM,b.PH,b.GYS,sum(b.RKS) '汇总数'
 from 表B b
 inner join 表A a on b.BM=a.WL
 where a.ZJ='是'
 group by b.BM,b.PH,b.GYS
 
-- 非质检表2
select b.BM,b.PH,b.GYS,sum(b.RKS) '汇总数'
 from 表B b
 inner join 表A a on b.BM=a.WL
 where a.ZJ='否'
 group by b.BM,b.PH,b.GYS

[解决办法]
exists里面的东西,不用管

热点排行