表连接包括没有条目的行 - SUM()

itw*_*twb 1 sql t-sql sql-server sql-server-2000 aggregate-functions

我在将两个表连接在一起时遇到一些困难,涉及一个SUM,它不包含在第二个表中.

即我有两张桌子:

tblClient

 ID|FirstName|LastName
 1 |Billy    |Blogs
 2 |Bobby    |Biggs
 3 |Hill     |Bill
 4 |Super    |Man
Run Code Online (Sandbox Code Playgroud)

tblComplete

 PurchaseID|ID|Amount
 123123    |1 |26.00
 43254     |2 |22.00
 546275    |3 |15.00
 463565    |3 |15.00
 343252    |1 |56.00
Run Code Online (Sandbox Code Playgroud)

我想要做的是将这两个表连接在一起,以便得到以下输出:

 ID|FirstName|LastName| SUM(Amount)
 1 |Billy    |Blogs   | 82.00
 2 |Bobby    |Biggs   | 22.00
 3 |Hill     |Bill    | 30.00
 4 |Super    |Man     | 0
Run Code Online (Sandbox Code Playgroud)

我希望Super Man被包含在输出中,总和为零,因为他没有购买任何东西.我该怎么做呢?

编辑:tblComplete表中的主键.

Mik*_*son 6

select
  CL.ID,
  CL.FirstName,
  CL.LastName,
  coalesce(CO.SumAmount, 0) as [SUM(Amount)]
from tblClient as CL
  left outer join
    (
      select
        sum(Amount) as SumAmount,
        ID
      from tblComplete
      group by ID
    ) as CO
    on CL.ID = CO.ID
Run Code Online (Sandbox Code Playgroud)