2013-06-12 14 views
1

聲明:本正在獲取最大編號爲變量使用MAX()函數不能在MySQL中存儲過程工作

Maxid varchar(11) default null; 
Select ifnull(max(employeeID),0) into @Maxid from employees where mid(employeeID,1,2) = '04'; 

我想用前兩個位數員工ID的子字符串從員工表中提取僱員的最大標識。

上述選擇查詢如果要單獨執行(在MySQL工作臺查詢瀏覽器中),則會給出完美結果,但在存儲過程中,結果爲0(零)表示空值。

  • MaxId具有相同的數據類型的僱員
  • maxid的數據類型也被改變爲整數,但同樣的結果0。

任何想法爲什麼它沒有得到正確的結果存儲過程?

感謝

回答

1

你忘了DECLARE語句局部變量聲明之前,你就混合了Maxid和@Maxid。試試這個:

DECLARE Maxid varchar(11) default null; 
Select ifnull(max(employeeID),0) into Maxid from employees where mid(employeeID,1,2) = '04'; 
+0

感謝我試過提到的代碼,但還是一樣的結果0 我試着結果連這個代碼,但是0或空的: 聲明MaxId BIGINT; (選擇max(convert(mid(employeeID,4,8),無符號整數))作爲員工的MaxId 其中mid(employeeid,1,2)='04'); 從temp中將MaxId選擇到@MaxId中; 放桌溫度; employeeid就像這樣'04 -00000008' – user2479278

+0

解決:我已經聲明瞭EmployeeId變量,並且表員工中的Employeeid字段與它衝突。通過更改變量的名稱解決了問題。 – user2479278

相關問題