TableA
MateialName Material Unit Price InCount TotalPrice
配件 2G内存条 根 100 20 2000
主板 华硕 块 100 20 2000
TableB
MaterialName Material Unit Price OutCount TotalPrice OutUserName
配件 2G内存条 根 100 1 100 A
配件 2G内存条 根 100 4 100 B
配件 2G内存条 根 100 5 100 C
配件 2G内存条 根 100 6 100 D
配件 2G内存条 根 100 7 100 E
sql代码
select A.MaterialName ,A.Material,A.Unit,Sum(InCount) as TotalInCount , SUM(IsNull(B.OutCount,0)) as TotalOutCount
From TableA A Left Outer Join TableB B
On A.MaterialName =B.MaterialName And A.Material =B.Material and A.Unit=B.Unit
Group by A.MaterialName ,A.Material,A.Unit
得出结果 郁闷
MaterialName Material Unit TotalnCount TotalOutCount
配件 2G内存条 根 100 23
主板 华硕 块 20 0
------解决方案--------------------
From TableA A Left Outer Join TableB B
连接以后A表示5行,结果自然是100了。Sum(distinct InCount) as TotalInCount