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