2014-12-19 18 views
1

請看看下面的代碼錯誤結合2個SQL查詢一起

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" 

其實我試圖在這裏做的就是這個。

  1. 獲取所有投資組合的財務詳情(第一個查詢)。
  2. 獲取第一個查詢引用的特定投資組合的提及日期的總交易爲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 

我怎樣才能使這個查詢成功後,該生成錯誤?

+0

舉動'和'Transaction_TimeStamp' <=「2016年12月17日」'爲其中的條件,然後通過訂單之前添加一個'組by',不知道分組部,因爲你沒有指定有關在哪個列分組要做,並總結爲剛剛總和(Transactions.Transaction_Amount) – 2014-12-19 09:35:30

回答

1

在檢索列中不能使用where條件。 您可以使用其他條件或總數。

SELECT ongoing_portfolio.*, 
     Portfolio.Activation, 
     SUM(case when Transaction_TimeStamp` <= ongoing_portfolio.`Updated_Date` 
      then Transactions.`Transaction_Amount` 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`= 2 group by 'Updated_Date' 
ORDER BY `Updated_Date` DESC LIMIT 4 
+0

嗨,這也會產生錯誤.... – 2014-12-19 09:01:03

+0

我已經在查詢中做出了僞裝。我忘了寫完結束後,現在就試試吧。 – 2014-12-19 09:02:24

+0

感謝您的回覆。 'Total'是錯誤的,好像它正在計算一些其他投資組合交易一樣。除此之外,我只得到1結果.. – 2014-12-19 09:04:33