Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 创建多个where-sql语句_Sql Server_Where_Between - Fatal编程技术网

Sql server 创建多个where-sql语句

Sql server 创建多个where-sql语句,sql-server,where,between,Sql Server,Where,Between,我正在尝试创建一个sql语句,它涉及到将两个日期之间的一个成本字段的总数相加,并将客户id设置为某个值。我目前的声明如下: SELECT SUM(COST) AS TotalCost FROM ORDERS WHERE ( DATE BETWEEN '01/01/2012' AND '09/25/2015' ) AND WHERE CUSTOMERID = '23' 但是,当我运行此命令时,会出现一个错误: java.sql.SQLSyntaxErrorException

我正在尝试创建一个sql语句,它涉及到将两个日期之间的一个成本字段的总数相加,并将客户id设置为某个值。我目前的声明如下:

SELECT SUM(COST) AS TotalCost
FROM   ORDERS
WHERE  ( DATE BETWEEN '01/01/2012' AND '09/25/2015' )
       AND WHERE CUSTOMERID = '23' 
但是,当我运行此命令时,会出现一个错误:

java.sql.SQLSyntaxErrorException:语法错误:在遇到“WHERE”时 第1行,第98列


我知道这是我语句中的一个语法错误,但我不确定应该如何编写它来防止这种情况发生

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

这个版本应该有效;额外的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

当我尝试将此错误改为java.sql.SQLSyntaxErrorException时:不支持“INTEGER”和“CHAR(UCS_BASIC)”之间的比较。CUSTOMERID是什么类型的字段?如果是整数,那么您的语句将是且CUSTOMERID=23,这是一个int,它解决了这个问题,但现在我有一个不同的错误,即CUSTOMERID列不存在,即使它是does@NickKaraolis-这不是你的个人调试服务。@Martin Smith我从来没有说过,我只是说在使用他的代码更改后发生了什么