SQL 简单统计
leibie
类编号  类名
01      成品
02      材料
0201    棉布
0202    纤维
0203    棉花
liushui
品名    类编号    数量
A1      02        10
A2      0201      15
A3      0202      12
A4      0202      10
A5      0203      20
统计编号前两位编号为02,截取前四位不同的类别合计,结果如下
类名    数量
棉花    15
纤维    22
棉花    20         
------解决方案--------------------
/*
leibie
类编号 类名
01 成品
02 材料
0201 棉布
0202 纤维
0203 棉花
liushui
品名 类编号 数量
A1 02 10
A2 0201 15
A3 0202 12
A4 0202 10
A5 0203 20
统计编号前两位编号为02,
截取前四位不同的类别合计,结果如下
类名 数量
棉花 15
纤维 22
棉花 20  
*/
go
if OBJECT_ID('leibie') is not null
drop table leibie
go
create table leibie(
类编号 varchar(5),
类名 nvarchar(10)
)
go
insert leibie
select '01','成品' union all
select '02','材料' union all
select '0201','棉布' union all
select '0202','纤维' union all
select '0203','棉花'
go
if OBJECT_ID('liushui') is not null
drop table liushui
go
create table liushui(
品名 varchar(4),
类编号 varchar(5),
数量 int
)
go
insert liushui  
select 'A1','02',10 union all
select 'A2','0201',15 union all
select 'A3','0202',12 union all
select 'A4','0202',10 union all
select 'A5','0203',20
select 类名,sum(数量) as 数量 from  
(select 类编号,数量  
from liushui  
where LEFT(类编号,2)='02' and LEN(类编号)>=4)a
left join (select * from leibie where LEFT(类编号,2)='02' and LEN(类编号)>=4)b
on a.类编号=b.类编号
group by 类名
/*
类名	数量
棉布	15
棉花	20
纤维	22
*/