Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/78.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 每月统计。ORA-01722:无效号码_Sql_Oracle - Fatal编程技术网

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的时候,你开始了:根据你的想法,我成功了,但问题似乎不是代码本身。我再次编辑了这个问题