2017-08-10 48 views
-1

我的任務問題:顯示每個客戶的貸款總數,包括沒有貸款的客戶。提示:首先使用子查詢形成外部連接表的右側部分。SQL:使用SUBQUERY的左外部聯接

我已經用下面的代碼來實現這一點:

SELECT DISTINCT 
    C.CustomerID, 
    C.LastName, 
    C.FirstName, 
    COUNT(L.LoanID) AS 'Number of Loans' 
FROM Customer C 
LEFT OUTER JOIN Loan L 
    ON C.CustomerID = L.CustomerID 
GROUP BY C.CustomerID 

但是我需要使用一個子查詢與LEFT OUTER JOIN,但我不知道如何去這一點。有什麼建議麼?

+0

請務必閱讀正文再做作業[問]。還[mcve]。什麼是你可以設想說的結果?像,*它的列*?你說你「不確定」。好的,你有什麼探索?你可以識別/做什麼*部件?例如,如果你只是想要客戶ID和負載計數,你可以從貸款。怎麼樣? – philipxy

回答

0

你可以去這樣理解:

SELECT c.FirstName, c.LastName, lc.LoanCount FROM 
    Customer c 
    LEFT OUTER JOIN 
    (
     SELECT l.CustomerID, LoanCount = COUNT(1) 
     FROM Loan l 
     GROUP BY l.CustomerID 
    ) lc ON c.CustomerId = lc.CustomerId 

,如果你不想對那些0貸款NULL可以使用

SELECT c.FirstName, c.LastName, LoanCount = ISNULL(lc.LoanCount, 0)