2013-08-20 51 views
2

當我從MySQL 5.0升級到5.1,在SP下面的SQL語句停止,錯誤代碼爲1064的工作 - 無效的列名VARCLNO在WHERE子句:問題在MySQL存儲過程從5.0到5.1

SELECT *, CLNO as VARCLNO, concat(CLCompany, CLSurname, CLFirstName, CLNO) as CLSort FROM Customer WHERE 
CLEditDate = (select max(CLEditDate) from Customer WHERE VARCLNO = CLNO) 
ORDER BY CLSort; 

CUSTOMER表格列全部開始CL。

任何幫助非常感謝。

回答

0

使用表的別名嘗試此查詢:

SELECT *, 
     CLNO as VARCLNO, 
     concat(CLCompany, CLSurname, CLFirstName, CLNO) as CLSort 
FROM Customer AS T1 
     WHERE 
     CLEditDate = (select max(CLEditDate) from Customer WHERE T1.CLNO = CLNO) 
ORDER BY CLSort; 
+0

這有固定的問題,謝謝。原始代碼爲什麼會在5.0以下而不是5.1以下工作? – user2236230

+0

@ user2236230:您在子查詢中使用VARCLNO,但它是主選擇列表中字段CLNO的別名。我認爲這是問題。 – valex

+0

好的,謝謝你的幫助.... – user2236230