【发布时间】:2014-12-19 08:50:50
【问题描述】:
请看下面的代码
SELECT ongoing_portfolio.*,
Portfolio.Activation
FROM Ongoing_Portfolio
INNER JOIN Portfolio ON Ongoing_Portfolio.idPortfolio = Portfolio.idPortfolio
WHERE ongoing_portfolio.`idPortfolio`= 2 ORDER BY `Updated_Date` DESC LIMIT 4
SELECT SUM(`Transaction_Amount`) AS `Total`
FROM `transactions`
WHERE `idPortfolio`= 2 AND `Transaction_TimeStamp` <= "2016-12-17"
其实我在这里要做的就是这个。
- 获取所有投资组合的财务详情(第一次查询)。
- 获取第一个查询引用的特定投资组合的
Updated_Date提到的日期的总交易。 (第二个查询)
现在,我确实需要在一个查询中执行此操作,所以我在下面尝试了。
SELECT ongoing_portfolio.*,
Portfolio.Activation,
SUM(Transactions.`Transaction_Amount`) AS `Total` WHERE `Transaction_TimeStamp` <= ongoing_portfolio.`Updated_Date`
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`= 2 ORDER BY `Updated_Date` DESC LIMIT 4
然而,正如它所说的那样,这会产生错误
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE `Transaction_TimeStamp` <= ongoing_portfolio.`Updated_Date`
FROM Ongoing_' at line 3
我怎样才能成功地进行这一查询?
【问题讨论】:
-
move
ANDTransaction_TimeStamp` group by,不确定分组部分,因为您没有指定关于在哪一列上进行分组并将总和作为总和(Transactions.Transaction_Amount)
标签: mysql sql join sum inner-join