MySql滚动总和问题

标签 mysql

我想要对列进行滚动求和。我创建了以下查询

SET @FinancialIncremental:=0;
SELECT  j.ErrorCategory, 
        COUNT(IF(j.ErrorType = 'P',j.ErrorType,NULL)) AS Financial,
        COUNT(IF(j.ErrorType = 'NP',j.ErrorType,NULL)) AS Procedural,
        SUM(j.OverPaymentAmount) AS 'Financial Over Paid Amount ($)',       
        (
            SELECT
                @FinancialIncremental := @FinancialIncremental + q1.c
            FROM
            (   
                (SELECT
                COUNT(IF(ErrorType = 'P',ErrorType,NULL)) AS c
                FROM DemoScheme.TestTable WHERE IsDeleted = 0 AND ErrorType IN ('P','NP')
                GROUP BY ErrorCategory) AS q1
            )
         ) AS 'Financial Incremental'
FROM DemoScheme.TestTable j WHERE IsDeleted = 0 AND ErrorType IN ('P','NP')
GROUP BY ErrorCategory;

但是它给了我一个错误。它给我一个关于“财务增量”子查询的错误

Error Code: 1242. Subquery returns more than 1 row

谁能帮我解决这个问题吗?

最佳答案

其中有一些重复,这使事情变得不必要地复杂化,请尝试此查询。添加时,您可能还需要将 NULL 替换为 0。

 SET @FinancialIncremental:=0;
SELECT  j.ErrorCategory, 
        COUNT(IF(j.ErrorType = 'P',j.ErrorType,NULL)) AS Financial,
        COUNT(IF(j.ErrorType = 'NP',j.ErrorType,NULL)) AS Procedural,
        SUM(j.OverPaymentAmount) AS 'Financial Over Paid Amount ($)',       
        (@FinancialIncremental := @FinancialIncremental + COUNT(IF(j.ErrorType = 'P',j.ErrorType,0))
 AS 'Financial Incremental'
FROM DemoScheme.TestTable j WHERE IsDeleted = 0 AND ErrorType IN ('P','NP')
GROUP BY ErrorCategory;

关于MySql滚动总和问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31668840/

相关文章:

mysql - 如何在 MySQL 中找到可变长度子字符串?

c# - MySql 和 C# 哈希值在转换为 BIGINT 时不匹配

mysql - 从一个表中选择一列并插入到另一个表中的另一列中

选择mysql db后php无法执行

mysql - Lua mysql,需要一种方法来转义数据

php - 使用 PHP 在 MySQL 中删除和插入之间可能存在问题?

MySQL - 使用字符串作为主键

php - php提交表单后如何返回同一页面?

php - 立即成功消息 - 即使用户很快关闭浏览器,php 脚本也会执行吗?

php向表中插入空白数据