当前位置: 代码迷 >> Sql Server >> sql 链接误区 误区了,该如何处理
  详细解决方案

sql 链接误区 误区了,该如何处理

热度:22   发布时间:2016-04-24 10:33:45.0
sql 链接误区 误区了
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
  相关解决方案