可以在MySQL的sum函数中添加count函数吗?

可以在MySQL的sum函数中添加count函数吗?,mysql,Mysql,对MySQL来说是相当新的;然而,我有一些错误的麻烦。我试图建立一个存储过程,告诉我们有余额到期的发票数量 因此,如果,大于0,…然后将所有这些发票加起来,形成余额 如果这些发票的余额大于或等于30000,则显示一条消息,给出有余额的发票数量以及这些发票的总和 否则,如果小于30000,则显示一条消息,说明总余额小于30000 谢谢你的帮助 请注意,我现在拥有的代码。它给了我一个关于SUM的错误。有没有办法让我的select语句更好 我的代码: DROP PROCEDURE IF EXISTS

对MySQL来说是相当新的;然而,我有一些错误的麻烦。我试图建立一个存储过程,告诉我们有余额到期的发票数量

因此,如果,
大于0,
…然后将所有这些发票加起来,形成余额

如果这些发票的余额
大于或等于30000
,则显示一条消息,给出有余额的发票数量以及这些发票的总和

否则,
如果小于30000,则显示一条消息,说明总余额小于30000

谢谢你的帮助

请注意,我现在拥有的代码。它给了我一个关于
SUM
的错误。有没有办法让我的select语句更好

我的代码:

DROP PROCEDURE IF EXISTS test;

DELIMITER //
CREATE PROCEDURE test()
BEGIN
    DECLARE var_balance_due_count INT;
    DECLARE var_balance_due_sum DECIMAL(9,2);

    SELECT
        (invoice_total - payment_total - credit_total) AS balance_due,
        COUNT(invoice_total - payment_total - credit_total) INTO var_balance_due_count,
        SUM(var_balance_due_count) INTO var_balance_due_sum
    FROM
        invoices
    WHERE
        invoice_total - payment_total - credit_total > 0;


    IF var_balance_due_sum >= 30000 THEN
        SELECT CONCAT('There is ', var_balance_due_count, ' invoices.', 'Together their balance due is: $',  var_balance_due_sum) AS message;
    ELSE 
        SELECT CONCAT('Total balance due is less than $30,000.') AS message;
    END IF;
END //

DELIMITER ;
CALL test();

问题不在于
总和本身,而在于您在
中使用
的方式,应该是在所有select表达式之后。请注意,我不明白您为什么要创建“余额到期日”,所以将其忽略。此外,根据我对您问题的理解,我已更正了您对
var\u balance\u due\u sum
的表述。因此,您的查询应该是:

SELECT
    COUNT(invoice_total - payment_total - credit_total),
    SUM(invoice_total - payment_total - credit_total) 
    INTO var_balance_due_count, var_balance_due_sum

问题不在于
总和本身,而在于您在
中使用
的方式,应该是在所有select表达式之后。请注意,我不明白您为什么要创建“余额到期日”,所以将其忽略。此外,根据我对您问题的理解,我已更正了您对
var\u balance\u due\u sum
的表述。因此,您的查询应该是:

SELECT
    COUNT(invoice_total - payment_total - credit_total),
    SUM(invoice_total - payment_total - credit_total) 
    INTO var_balance_due_count, var_balance_due_sum