2014-05-16 87 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";