1
請看看下面的SQL查詢連接:當SUM()使用不正確的結果,只有一個記錄顯示
SELECT Client_Portfolio.*,
Client.Name AS "Client Name",
Provider.Name AS "Provider Name",
Initial_Fees.*,
Portfolio.VAT,
Portfolio.Invest_Amount,
Portfolio.Cash_Value,
SUM(Ongoing_Fees.Fee)
FROM Client_Portfolio
LEFT JOIN Client ON Client.idClient = Client_Portfolio.idClient
LEFT JOIN Portfolio ON Portfolio.idPortfolio = Client_Portfolio.idPortfolio
LEFT JOIN Provider ON Provider.idProvider = Portfolio.idProvider
LEFT JOIN Initial_Fees ON Initial_Fees.idPortfolio = Portfolio.idPortfolio
LEFT JOIN Ongoing_Fees ON Ongoing_Fees.idPortfolio = Portfolio.idPortfolio
ORDER BY Client_Portfolio.idClient
這個查詢產生不正確的結果,但如果我刪除「SUM(Ongoing_Fees.Fee)
」部分,那麼這會產生正確的結果。
Ongoing_Fees
是一張表,有些Portfolios
可能有Ongoing_Fees
,而另一些則沒有。我試圖總結所有Ongoing_Fees分別屬於每個投資組合,並用上述查詢得到結果。但它出錯了。它給了我整個表的總和Ongoing_Fees
,並且整個上面的查詢返回了1行!我怎樣才能解決這個問題?
沒有分組的聚合函數?最後你可能需要一個group by子句。 – 2014-09-22 09:02:58
@AhhikChakraborty:謝謝你的回覆。我怎樣才能申請它? – 2014-09-22 09:03:31
在訂單前添加以下內容:由Client.idClient進行分組,並使其成爲選擇的一部分。 – 2014-09-22 09:04:55