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