2017-01-13 27 views
0

我有一個SQL查詢的列表,我需要日誌輸出,所以我使用MySQL命令行客戶端。所有這些都會產生正確的輸出,除了下面的查詢,這會引發語法錯誤。查詢的目的是獲取訂購了最大總量產品的客戶的CustID。我使用子查詢,但也許這是錯誤的:爲什麼在Workbench適用時,MySQL命令行客戶端會拒絕我的聲明?

SELECT CUSTNUM FROM(
    SELECT CUSTNUM, MAX(TOTALQTY) FROM(
    SELECT CUSTNUM, SUM(QTY) AS TOTALQTY 
    FROM ORDERS GROUP BY CUSTNUM ORDER BY TOTALQTY DESC 
    ) ORDERS 
) ORDERS; 

...我得到這個錯誤:

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual 
that corresponds to your MySQL server version for the right syntax to use 
near 'ORDERS GROUP BY CUSTNUM ORDER BY TOTALQTY DESC) ORDERS ) ORDERS' at 
line 1 

我不明白爲什麼這個查詢工作在工作臺很好,但不是在命令行。

+2

'不工作'是什麼意思? –

+0

該死的,忘了張貼錯誤信息,一秒 – Nomkins

+0

您的錯誤與您發佈的查詢不一樣嗎? –

回答

0

好吧,看起來當我複製和粘貼Workbench中的語句時,它正在丟失過程中關鍵字之間的一些空格。粘貼的查詢在命令行中出現如下:

SELECT CUSTNUM FROM(SELECT CUSTNUM, MAX(TOTALQTY) FROM(SELECT CUSTNUM, 
SUM(QTY) AS TOTALQTYFROM ORDERS GROUP BY CUSTNUM ORDER BY TOTALQTY DESC) 
ORDERS ) ORDERS ; 

注意「TOTALQTYFROM」,錯誤。

經驗教訓...不要盲目地複製和粘貼,或至少檢查我粘貼的東西!

我要離開這個帖子以防其他人有類似的問題。

相關問題