2015-04-03 71 views
-1

我想创建一个SQL语句,其中涉及总计两个日期之间的成本字段和客户ID是一个特定的值。我的发言目前看起来是这样的:创建一个多和SQL语句

SELECT SUM(COST) AS TotalCost 
FROM ORDERS 
WHERE (DATE BETWEEN '01/01/2012' AND '09/25/2015') 
     AND WHERE CUSTOMERID = '23' 

然而,当我跑这里面说,我得到一个错误:

java.sql.SQLSyntaxErrorException: Syntax error: Encountered "WHERE" at line 1, column 98.

我知道,这是在我的发言中有语法错误,但我不确定它应该如何被写入防止这种情况发生

回答

2

离开了第二WHERE

WHERE (DATE BETWEEN '01/01/2012' AND '09/25/2015') AND CUSTOMERID='23' 
+0

当我尝试,我得到这个错误,而不是 java.sql.SQLSyntaxErrorException: 'INTEGER' 和 'CHAR(UCS_BASIC)' 之间的比较不被支持。 – 2015-04-03 19:56:25

+0

什么类型的字段是CUSTOMERID?如果一个整数,那么你的语句将是AND CUSTOMERID = 23 – 2015-04-03 19:58:00

+0

它是一个int,并且已经解决了这个问题,但现在我有一个不同的错误,说CUSTOMERID列不存在,即使它不存在 – 2015-04-03 19:59:43

0

这个版本应该工作;额外的where子句,我假设你的customerid是一个整数,而不是一个字符串。

SELECT SUM(COST) AS TotalCost 
FROM ORDERS 
WHERE (
    DATE BETWEEN convert(datetime, '01/01/2012') AND convert(datetime, '09/25/2015') 
) 
AND  CUSTOMERID = 23