【发布时间】:2014-03-18 18:52:38
【问题描述】:
我写了一个存储函数:
USE sakila;
DROP FUNCTION IF EXISTS sumOfFilm;
DELIMITER $$
CREATE FUNCTION sumOfFilm(
mStore_id TINYINT, mMonth VARCHAR(4), mYear VARCHAR(4))
BEGIN
DECLARE @sumOfFilm INT;
SELECT COUNT(*) INTO @sumOfFilm FROM rental
INNER JOIN inventory ON rental.inventory_id=inventory.inventory_id
INNER JOIN store ON store.store_id=inventory.store_id
WHERE mStore_id=store.store_id AND
mMonth=month(rental_date) AND
mYear=year(rental_date)
GROUP BY store.store_id;
RETURN @sumOfFilm;
END$$
DELIMITER ;
当我执行它时,我收到一条错误消息:
ERROR 1064 (42000):您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以获取在 'BEGIN 附近使用的正确语法 声明@sumOfFilm INT; 从租赁中选择 COUNT(*) 到 @sumOfFilm INN' 在第 3 行
请帮帮我:)
【问题讨论】:
-
也许做 SET @sum = SELECT COUNT(*)
-
我试过了,但没有任何改变
-
您是否像我发送的那样查看了 SO?
-
SET @sum = (SELECT COUNT(*) .... ) 抱歉忘记在 SET 周围添加 ()