SQL 包含日期范围的声明 - 分组不一致

SQL Having statement with Date Range - The grouping is inconsistent

我正在努力处理这个脚本。我想把它写在计算实例总数然后添加这些实例的总和的地方,但是,当我 运行 带有 "HAVING....AND CSH.SLS_DT BETWEEN '2015-01-01' and '2015-06-16'" 的脚本时,我收到一条错误消息,指出 "the grouping is inconsistent"

当我注释掉日期范围时,脚本 运行 没问题,但日期范围对该脚本至关重要。预先感谢您的帮助。脚本如下:

SELECT OS.STR_NBR STORE                           
        , CSH.CSHR_USER_ID LDAP                    
        , COUNT(CSH.USER_ID) AS COUNT              
        , SUM(OS.OVR_SHRT_AMT) AS TOTAL            

 FROM PRHDW.VLT_CSHR_AUD CSH                       

 LEFT OUTER 
 JOIN PRHDW.VLT_AUD_OVR_SHRT OS                    
      ON     OS.STR_NBR = CSH.STR_NBR              
      AND    OS.SLS_DT = CSH.SLS_DT                
      AND    OS.CSHR_SYSUSR_ID = CSH.CSHR_SYSUSR_ID

 GROUP BY    OS.STR_NBR, CSH.CSHR_USER_ID          

 HAVING             OS.STR_NBR       = '0121'             
          --AND     SUM (OS.OVR_SHRT_AMT) > 0         
            AND     CSH.SLS_DT BETWEEN '2015-01-01' AND '2015-06-16'  
  ORDER BY TOTAL DESC                                             
  WITH UR;                                                        

根据您的限制,它应该可以很好地与 where 子句一起使用。 having 子句的目的是与某些聚合进行比较。显然你没有这样做 应如下所示:

AND    OS.CSHR_SYSUSR_ID = CSH.CSHR_SYSUSR_ID 
WHERE OS.STR_NBR = '0121' 
AND     CSH.SLS_DT BETWEEN '2015-01-01' AND '2015-06-16'
GROUP BY OS.STR_NBR, CSH.CSHR_USER_ID