2015-04-03 2 views
-1

Я пытаюсь создать оператор sql, который включает в себя суммирование всего поля затрат между двумя датами и где идентификатор клиента имеет определенное значение. Мое заявление в настоящее время выглядит следующим образом:Создание многократного и где 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 (DATE BETWEEN '01/01/2012' AND '09/25/2015') AND CUSTOMERID='23' 
+0

Когда я пытаюсь, что я получаю эту ошибку вместо java.sql.SQLSyntaxErrorException: Сравнения между 'INTEGER' и 'CHAR (UCS_BASIC)' не поддерживается. –

+0

Какой тип поля CUSTOMERID? Если целое число, то ваш оператор будет И CUSTOMERID = 23 –

+0

Это int, и это исправило эту проблему, но теперь у меня другая ошибка, говоря, что столбец CUSTOMERID не существует, хотя он делает –

0

Эта версия должна работать; extra 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 
Смежные вопросы