Пожалуйста, взгляните на приведенный ниже код.`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
Это прекрасно работает «только», если есть «по крайней мере» 1 сделка для конкретного portfolio
. Если для этого портфеля вообще нет транзакций, он просто возвращает пустую строку, что ничего не значит.
Я пробовал группировку с Ongoing_Portfolio.idOngoing_Portfolio
, Transactions.idTransactions
, Ongoing_Portfolio.idPortfolio
, но ничего хорошего. Почему это происходит так?
Использовать 'оставил join' вместо' внутренней join' –
@juergend: Хорошо, но на что? –