2014-11-08 62 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,以便查询可以运行。从那里,你可以解决你的逻辑错误。

相关问题