`Group By`返回空行

时间:2014-12-19 09:50:03

标签: mysql sql join group-by

请查看以下代码。

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_PortfolioTransactions.idTransactionsOngoing_Portfolio.idPortfolio进行分组,但一点也不好。为什么会这样发生?

2 个答案:

答案 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