2014-03-29 3 views
1

다시 PHPMyAdmin ... 나는 카드와 소유권 (자신이 소유 한 카드가있는 모든 플레이어를 나열하는) 두 테이블에서 쿼리를 실행하려고합니다. 그리고 시장에 나와있는 카드의 총 금액을 (이름이 주어지면) 반환 할 함수를 만들고 싶습니다. 나는 다음과 같은 방법으로이를 정의 :PHPMyAdmin이 SQL 구문에서 오류를 발생시키는 이유는 무엇입니까?

CREATE FUNCTION get_card_overall_count (_name TEXT) 
RETURNS INT 
DETERMINISTIC 
READS SQL DATA 

BEGIN 
DECLARE res INT; 
SET res = SELECT SUM(`ownerships`.`amount`) 
      FROM `ownerships` JOIN `cards` ON `ownerships`.`card_ID` = `cards`.`ID` 
      WHERE `cards`.`name` = _name 
      GROUP BY `name`; 
RETURN res; 
END// 

답변

2

SET 구문은 스칼라가 아닌 쿼리로 오른쪽을 원하지만, 당신이 스칼라 하위 쿼리 실행하도록 설득 할 수

SET res = (SELECT SUM(`ownerships`.`amount`) 
      FROM `ownerships` JOIN `cards` ON `ownerships`.`card_ID` = `cards`.`ID` 
      WHERE `cards`.`name` = _name 
      GROUP BY `name`); 
+2

또는 다른 방법으로'SELECT res : =. . . ''SET'을 전혀 사용하지 마십시오. –

+1

또는'sum (...) res에 –

+0

좋아, 그 작품 (내 말은, 내가 원한 결과가 아니라 구문 오류도 의미) –

관련 문제