语法错误 SQL 查询

Incorrect Syntax error SQL Query

这个查询有什么问题?我一直收到错误消息

Incorrect Syntax near )

查询

SELECT 
    COUNT(*) QUOTECOUNT 
FROM 
    (SELECT DISTINCT 
         FIRSTNAME, LASTNAME, DATEOFBIRTH, ZIPCODE  
     FROM 
         DBO.RATING_INFO 
     WHERE 
         STATE = 'Texas' 
         AND LOB = 'PersonalAuto'
         AND SOURCELASTMODIFIED BETWEEN '2018-05-02 00:00:00' AND '2018-07-03 00:00:00'
         AND REQUESTEDBYAPPLICATION = 'MR' 
         AND EXTERNALPOLICYSUBSOURCE = 'ezlynx');

你只需要子查询别名,但我也给了计数一个别名,并把 State 放在方括号中以备不时之需。在dbms上应该无关紧要,但我使用了SQL服务器。

SELECT COUNT(*) as QUOTECOUNT 
FROM (
        SELECT DISTINCT FIRSTNAME, LASTNAME, DATEOFBIRTH, ZIPCODE  
        FROM DBO.RATING_INFO 
        WHERE [STATE] = 'Texas' and LOB = 'PersonalAuto'
                                and SOURCELASTMODIFIED BETWEEN '2018-05-02 00:00:00' AND '2018-07-03 00:00:00'
                                and REQUESTEDBYAPPLICATION = 'MR' 
                                and EXTERNALPOLICYSUBSOURCE = 'ezlynx'
    ) c
;

这是一个不使用子查询的替代方法。由于您需要不同值的计数,因此您可以轻松地使用分组依据。添加一点白色 space 使其清晰易读,它可能看起来像这样。

SELECT QUOTECOUNT = COUNT(*)
FROM DBO.RATING_INFO 
WHERE STATE = 'Texas' 
    and LOB = 'PersonalAuto'
    and SOURCELASTMODIFIED BETWEEN '2018-05-02 00:00:00' AND '2018-07-03 00:00:00'
    and REQUESTEDBYAPPLICATION = 'MR' 
    and EXTERNALPOLICYSUBSOURCE = 'ezlynx'
group by FIRSTNAME
    , LASTNAME
    , DATEOFBIRTH
    , ZIPCODE