请查看以下代码。
SELECT ongoing_portfolio.*,
Portfolio.Activation,
SUM(case when Transaction_TimeStamp <= ongoing_portfolio.`Updated_Date`
then Transactions.`Transaction_Amount` ELSE 0 end) AS `Total`
FROM Ongoing_Portfolio
INNER JOIN Portfolio ON Ongoing_Portfolio.idPortfolio = Portfolio.idPortfolio
INNER JOIN Transactions ON Transactions.`idPortfolio` = Ongoing_Portfolio.idPortfolio
WHERE ongoing_portfolio.`idPortfolio`= 5
GROUP BY Ongoing_Portfolio.`Updated_Date` DESC LIMIT 4
如果特定portfolio
存在“至少”1个事务,则“仅”可以正常工作。如果该组合根本没有任何交易,那么它只返回空行,这意味着什么。
我尝试使用Ongoing_Portfolio.idOngoing_Portfolio
,Transactions.idTransactions
,Ongoing_Portfolio.idPortfolio
进行分组,但一点也不好。为什么会这样发生?
答案 0 :(得分:1)
替换
INNER JOIN Transactions ON Transactions.`idPortfolio` = Ongoing_Portfolio.idPortfolio
通过
LEFT JOIN Transactions ON Ongoing_Portfolio.idPortfolio = Transactions.`idPortfolio`
答案 1 :(得分:0)
尝试使用LEFT JOIN而不是INNER JOIN