我正在尝试解决一些已经创建的软件上的错误,我有以下存储过程:
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
当我运行查询时,我收到以下错误:在列表中按顺序多次指定了一列。按列表排列的列必须是唯一的。
我被告知这个以前一直在工作,所以我不确定为什么会发生这种情况,我已经尝试删除make或[MAKE] asc但是它没有返回预期的数据。有什么想法发生了什么?
答案 0 :(得分:2)
这是您的order by
:
order by make, [DUE_Date], [MAKE] asc
您已指定make
两次。所以,这完全等同于:
order by make, [DUE_Date]
答案 1 :(得分:1)
不返回预期的数据是一个逻辑错误,这与语法错误不同。您必须从make
中删除[MAKE] asc
或order by
,以便查询可以运行。从那里,你可以解决你的逻辑错误。