2014-11-08 17 views
0

我想對一些已經開發的軟件在那裏我有以下存儲過程找出錯誤:列在ORDER BY列表中必須是唯一的SQL命令通過

SELECT [ART_NO],[QTY],[DUE_DATE],make=CASE make WHEN 'BANER' THEN 'BANER' Else ' ' + make END, [PRODUCT],[PRICE],[DETAIL],[COLOUR],[RS1],[RS2],[RS3],[RS4],[RS5],[RS6],[RS7],[RS8],[RS9],[RS10],[RS11],[RS12] FROM [DBKular].[dbo].[INVOISTK] where make != '' order by make, [DUE_Date],[MAKE] asc 

當我運行查詢我得到的出現以下錯誤:列按順序列表中指定了多次。按順序排列的列必須是唯一的。

有人告訴我,這已經被以前的工作,所以我不能確定爲什麼這可能發生,我試圖消除要麼使或[製作] ASC但它不會返回預期的數據。任何想法是怎麼回事?

回答

1

這是您的order by

order by make, [DUE_Date], [MAKE] asc 

您指定make兩次。所以,這是完全等同於:

order by make, [DUE_Date] 
1

不返回預期的數據是一個邏輯錯誤,這是不一樣的問題,因爲一個語法錯誤。您必須從order by中刪除make[MAKE] asc,以便查詢可以運行。從那裏,你可以解決你的邏輯錯誤。

相關問題