2012-04-02 24 views
1

我有一個數據庫,我正在嘗試獲取名稱旁邊的項目總借用名單。MYSQL TotalValue當另一列有一個設定值

目前我需要的所有數據都可以在下面的查詢中查看。

SELECT * 
FROM Borrower b 
JOIN Loan l ON b.BorId = l.BorId 
JOIN BookCopy bc ON l.BcId = bc.BcId 
JOIN BookTitle bt ON bc.BtId = bt.BtId 

在這一天結束時,我想b.BorName柱,並bt.Value的每個另一列借款的總和。

上面的表格顯示了每個BorName的多行,因爲每個人都有多個借用的項目,但是我希望藉助所有相關的bt.value字段在另一列中的總和減少到每個借用者一行。

我曾嘗試選擇以下

SELECT b.BorName, SUM(DISTINCT bt.Value) as Total 
FROM Borrower b 
JOIN Loan l ON b.BorId = l.BorId 
JOIN BookCopy bc ON l.BcId = bc.BcId 
JOIN BookTitle bt ON bc.BtId = bt.BtId 

但是,這只是返回一個單獨的行,與他們的總價值查詢中的第借款人。

我已經達到了當前MYSQL知識的極限,並試圖進一步查看GROUP BY,例如, SUM和子查詢,但無法解決我的意圖。

回答

2

試試這個

SELECT b.BorName, SUM(bt.Value) AS 'Total' 
FROM Borrower b 
JOIN Loan l ON b.BorId = l.BorId 
JOIN BookCopy bc ON l.BcId = bc.BcId 
JOIN BookTitle bt ON bc.BtId = bt.BtId 
GROUP BY b.BorName 
+0

如果我當時就想這個限制在「合計」值> 10? 我已經嘗試了一個簡單的WHERE之前和之後GROUP BY引用Total或SUM(bt.Value),但都沒有工作。 – 2012-04-02 22:21:48

+0

對於其他人這個鏈接將幫助http://codespatter.com/2008/07/22/conditions-on-count-or-sum-in-mysql/ 您正在尋找的詞是HAVING – 2012-04-02 22:32:31

+0

@ mr.user1065741是的,你需要使用'HAVING' – 2012-04-02 22:41:15

相關問題