在使用MySQL数据库时,经常会遇到一个错误提示:Invalid use of group function。意思是没有正确使用group function。当查询的结果指代不明,或者和接受结果的变量数据类型不匹配时,都会导致这个错误提示。因此,遇到这个错误时,首先就考虑这两个地方有没有出问题。
代码示例:
-- 原来的代码
DELIMITER $
CREATE PROCEDURE test_1(INOUT n DOUBLE)
BEGIN
SELECT cou.couName,AVG(s.score)
FROM course cou,score s
WHERE cou.couName='masql' AND cou.examTime='2014-04-04'AND s.courseId=cou.id;
SELECT n;
SET n=AVG(s.score);
END $
SET @n=0.00;
CALL test_1(@n); -- 由于查询结果指代不明,会提示Invalid use of group function。SELECT @n;
-- 修改后的代码
DELIMITER $
CREATE PROCEDURE test_2(INOUT n DOUBLE)
BEGIN
SELECT cou.couName,AVG(s.score)
FROM course cou,score s
WHERE cou.couName='masql' AND cou.examTime='2014-04-04'AND s.courseId=cou.id;
SELECT n;
SET n=(SELECT AVG(s.score)
FROM course cou,score s
WHERE cou.couName='masql' AND cou.examTime='2014-04-04'AND s.courseId=cou.id );
END $
SET @n=0.00;
CALL test_2(@n); -- 结果正常
SELECT @n;
版权声明:本文为博主原创文章,转载请附上博文链接!
暂无数据