2013-05-13 5 views
-1

#1415 - Not allowed to return a result set from a function 당신이 "반환"결과 세트, 당신은 CREATE PROCEDURE를 사용해야 할 경우MySQL의 기능 반환 오류

DELIMITER $$ 
CREATE FUNCTION Test.FnGetLastDayLastFinYear (pdate datetime) 
RETURNS DATETIME 
BEGIN 

Declare MonthNo int; 
Declare YearNo int; 

DECLARE OUTPUTDATE DATETIME;  

SELECT MonthNo = DATEPART(MONTH,@pdate); 

if(@MonthNo <= 3) 
then 

     SELECT @YearNo = (DatePart(Year,getdate()) - 1); 


     Select @OUTPUTDATE = Date_Format(@YearNo,'%d/%m/%Y'); 


ELSE 

     Select @OUTPUTDATE= Date_Format(@pdate,'%d/%m/%Y'); 
END If; 

RETURN @OUTPUTDATE; 
END 
+4

그리고 질문은 ...? – imulsion

+1

많은 코드를 게시하고 실제로 질문하지 않는 것이 도움이되지 않습니다 ... 당신의 질문은 무엇입니까? – naththedeveloper

+0

나는이 문제를 일으키고있다.이 사용자 함수를 생성하는 동안이 에러가 발생한다 .... – user2377154

답변

1

당신이 CREATE FUNCTION 만 사용할 수 있다고 설명되어 docu하지 CREATE FUNCTION

단일 값을 반환 할 때

UPDATE : 당신이 당신의 FUNCTION에서 변수를 설정하고 그것을 반환 할 경우

, 그때

SELECT field INTO your-variable FROM rest-of-normal-select; 

예를 사용하는 것이 좋습니다 것입니다

Declare MonthNo int; 
SELECT DATEPART(MONTH,pdate) INTO MonthNo; 

이는 경우에만 DATEPART 자체가 예상대로 작동하는 FUNCTION입니다 작동합니다.

+0

분명히, 그는 함수에서 하나의 값을 반환하기를 원한다. ...? –

+0

함수에서 하나의 값을 반환하고 싶습니다. – user2377154

+0

어떻게하면 좋을지 제안했습니다. 당신의 임무에 익숙하지 않습니다. 나는''SELECT INTO'''를 사용하고 데이터베이스에서 잘 작동합니다. – luksch