私のストアドプロシージャコードを見てください。
CREATE DEFINER=`ninjaboy`@`%` PROCEDURE `getMonthlyTotalScore`(IN ninjaId int, IN month int, IN year int)
BEGIN
DECLARE startDate DATE;
DECLARE endDate DATE;
DECLARE maxDay INTEGER;
SELECT DAY(LAST_DAY(year + '-' + month + '-01')) INTO maxDay;
SET startDate = year + '-' + month + '-01';
SET endDate = year + '-' + month + '-' + maxDay;
SELECT SUM(SCORE) FROM NINJA_ACTIVITY WHERE NINJA_ID = ninjaId AND DATE BETWEEN startDate AND endDate ORDER BY DATE;
END
テストデータ:
NINJA_ACTIVITY_ID | 忍者ID | スコア | 日にち 1 1 24 2012-05-01 2 1 36 2012-05-06 3 1 29 2012-05-11
関数呼び出し:call getTotalMonthlyScore (1, 5, 2012)
に基づいて忍者の月間スコアを取得しようとしていninjaId
ます。
なぜ機能しないのですか?私が間違っているところはありますか?