2014-05-16 89 views
0

我試圖在這個從JSP模板調用的sql語句中添加一個等於或大於20.0的參數,但它給了我所有的時間附近的HAVING總和(數量)sql語法錯誤, :包含等於或大於正確sql

"SELECT performId,sum(amount) AS totalAmount FROM performTransactions"+ 
" WHERE time >= STR_TO_DATE('" + (ftd.format(timeFrom)) + "', '%Y.%m.%d %H:%i:%s')" + 
" AND time < STR_TO_DATE('" + (ftd.format(timeTo)) + "', '%Y.%m.%d %H:%i:%s')" + 
" AND type IN (1, 2) GROUP BY performId ORDER BY totalAmount DESC" + 
" HAVING sum(amount) >= 20.0" ; 

我試圖包括在不同的位置的參數,但它被髮送「無效使用組功能的」,我怎樣才能設置正確總結(量)或總金額大於20.0正確更大? 謝謝

+1

只是格式化上面我看到有需要在前面的空間,否則它的DESCHaving。而不是DESC這樣既可以加上'DESC「或''HAVING ...' – xQbert

+4

組 - 由之後應該在一起命令。 –

+0

嗨,Abhik,我不知道如果HAVING是正確的,我認爲這是至於我看到的一些答案,我需要知道的是如何包括總和(金額)等於或大於20.0在該SQL中,是正確的?或者我應該寫AND和(金額)> = 20.0? – user1958022

回答

2

HAVING來ORDER BY之前:

"SELECT performId,sum(amount) AS totalAmount FROM performTransactions"+ 
" WHERE time >= STR_TO_DATE('" + (ftd.format(timeFrom)) + "', '%Y.%m.%d %H:%i:%s')" + 
" AND time < STR_TO_DATE('" + (ftd.format(timeTo)) + "', '%Y.%m.%d %H:%i:%s')" + 
" AND type IN (1, 2) GROUP BY performId " + 
" HAVING sum(amount) >= 20.0" 
" ORDER BY totalAmount DESC";