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
我正在努力处理这个脚本。我想把它写在计算实例总数然后添加这些实例的总和的地方,但是,当我 运行 带有 "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