两个表中的数据如何统计?急
A表 (基础信息表)
LH LHSM SL
1001 A 10
10011059 B 10
1002301 C 10
10011024 D 20
--- -- --
B表 (类别说明表)
LHLB LBSM
1001 A1
1002 A2
100110 A3
----- ---
统计的结果是:
LH LBSM SL
1001 A1 10 --注意不要把10011059 与10011024 统计成同一类
1002 A2 10
100110 A3 30 --即 10011059 与10011024 可以统计归一类
即要求 根据B表中的 LHLB(料号类别) 统计A表中的数据,尤其是要注意 '1001 '与 '100110 ' 是两个不同的类别,统计时一定不能把A表中的LH '1001 '与 '100110 '统计成一类,这只是举个例,类别会有很多
------解决方案--------------------select *,(select sum(SL) from a y where LH like x.LHLB+ '% ' and not exists
(select 1 from b z where y.lh like z.LHLB+ '% ' and len(z.LHLB)> len(x.LHLB))
) as SL
from b x
------解决方案--------------------select b.LBLB,b.LBSM,sum(a.SL) as 'SL '
from A表 a inner join B表 b on left(a.LH,len(b.LHLB)=b.LHLB
group by b.LHLB,b.LBSM
order by b.LBSM
------解决方案--------------------select b.LHLB as LH,
b.LBSM,
(select sum(SL) from A表 where left(LH,len(b.LHLB)) = b.LHLB and not exists
(select 1 from B表 c where left(LH,len(c.LHLB))=c.LHLB and len(c.LHLB)> len(b.LHLB)) ) as SL
from B表 b
--结果:
LH LBSM SL
-------------------- -------------------- -----------
1001 A1 10
1002 A2 10
100110 A3 30