2015-10-20 26 views
-1
CREATE DEFINER=`root`@`localhost` PROCEDURE `WhileLoopProc`() 

BEGIN 

DECLARE x INT; 

SET x = 1; 

loop1: WHILE x <= 213 DO 

     SET @s = CONCAT('SELECT Units, NAV FROM jbequity.nav WHERE ClientID =', x ,'ORDER BY Date LIMIT 1'); 

    PREPARE stmt FROM @s; 

    EXECUTE stmt; 

    DEALLOCATE PREPARE stmt; 

SET x = x + 1; 

    END WHILE loop1 ; 

END 
+1

那麼什麼是錯誤前面的空間?請編輯您的問題以包含錯誤。 – StillLearnin

+0

錯誤代碼:1064.您的SQL語法錯誤;請檢查與您的MySQL服務器版本相對應的手冊,以便在第1行'BY日期限制1'附近使用正確的語法。日期是表中的一列。 –

+0

它工作正常,如果我刪除'BY日期限制1',但我需要保持它 –

回答

0

嘗試一次看到那一片片導致錯誤,然後谷歌的一個不工作來學習如何使用它刪除ORDER BY DateLIMIT 1之一。

編輯

我懷疑的問題是,你缺少在ORDER BY