Sql 每月统计。ORA-01722:无效号码
我使用两种选择来进行月度统计。首先选择适当的数据,然后仔细统计每月的统计数据 首先选择:Sql 每月统计。ORA-01722:无效号码,sql,oracle,Sql,Oracle,我使用两种选择来进行月度统计。首先选择适当的数据,然后仔细统计每月的统计数据 首先选择: SELECT TO_CHAR (ZDZDATETIME, 'RRRR-MM-DD') AS DA, ID, MAX (DAYRF) AS DAYRF FROM JC_T_QXJYJCSJ WHERE ID = 'G2001' GROUP BY TO_CHAR (ZDZDATETIME, '
SELECT
TO_CHAR (ZDZDATETIME, 'RRRR-MM-DD') AS DA,
ID,
MAX (DAYRF) AS DAYRF
FROM
JC_T_QXJYJCSJ
WHERE
ID = 'G2001'
GROUP BY
TO_CHAR (ZDZDATETIME, 'RRRR-MM-DD'),
ID
ORDER BY
ID,
TO_CHAR (ZDZDATETIME, 'RRRR-MM-DD')
结果是:
最终代码:
SELECT
TO_CHAR (DA, 'RRRR-MM') AS DA1,
SUM (DAYRF)FROM(
SELECT
TO_CHAR (ZDZDATETIME, 'RRRR-MM-DD') AS DA,
ID,
MAX (DAYRF) AS DAYRF
FROM
JC_T_QXJYJCSJ
WHERE
ID = 'G2001'
GROUP BY
TO_CHAR (ZDZDATETIME, 'RRRR-MM-DD'),
ID
ORDER BY
ID,
TO_CHAR (ZDZDATETIME, 'RRRR-MM-DD')
) GROUP BY
TO_CHAR (DA, 'RRRR-MM');
总是提示我输入无效的数字
我认为ID='G2001'语句有问题,因此我尝试将其更改为其他ID='XXX',它将成功运行。我不知道是否发生了代码以外的错误。您的问题没有透露有关您的问题的太多信息 我尝试将您的问题转换为一个问题陈述,并使用以下查询解决了相同的问题
WITH DATAA(ID, DAYRF, DATE1) AS
(
SELECT 1, 10, DATE '2019-06-22' FROM DUAL UNION ALL
SELECT 1, 9 , DATE '2019-06-22' FROM DUAL UNION ALL
SELECT 1, 5, DATE '2019-06-22' FROM DUAL UNION ALL
SELECT 2, 20, DATE '2019-06-22' FROM DUAL UNION ALL
SELECT 2, 15, DATE '2019-06-22' FROM DUAL UNION ALL
SELECT 2, 12, DATE '2019-06-22' FROM DUAL UNION ALL
SELECT 3, 5, DATE '2019-06-22' FROM DUAL UNION ALL
SELECT 3, 30, DATE '2019-06-22' FROM DUAL UNION ALL
SELECT 1, 20, DATE '2019-06-23' FROM DUAL UNION ALL
SELECT 1, 29 , DATE '2019-06-23' FROM DUAL UNION ALL
SELECT 1, 15, DATE '2019-06-23' FROM DUAL UNION ALL
SELECT 2, 40, DATE '2019-06-23' FROM DUAL UNION ALL
SELECT 2, 45, DATE '2019-06-23' FROM DUAL UNION ALL
SELECT 2, 32, DATE '2019-06-23' FROM DUAL UNION ALL
SELECT 3, 19, DATE '2019-06-23' FROM DUAL UNION ALL
SELECT 3, 1, DATE '2019-06-23' FROM DUAL
)
SELECT
DATE1,
SUM(MAX_DAYRF)
FROM
(
SELECT
DATE1,
ID,
MAX(DAYRF) AS MAX_DAYRF
FROM
DATAA
GROUP BY
DATE1,
ID
)
GROUP BY
DATE1;
乌普图
干杯 我已经更改了我的描述,请您再次帮助我。检查此链接:仅以您的数据为例:我现在想查询整个6月份ID=1的DAYRF之和。当一天中有多个数据时,取DAYRF最大的一个,其他的则不。结果如下:(6月19日30日)就在ID=1的时候,你开始了:根据你的想法,我成功了,但问题似乎不是代码本身。我再次编辑了这个问题