ORACLE查询中出现“Ora-01791 不是Selected表达式”错误信息的解决办法
转
偶写一个销售查询的功能模块,但在测试的时候按 条码/编码/库房 条件排序的时候都没有错误,只要按日期查的时候就会有“Ora-01791 不是Selected表达式”的错误信息,于是查看我的SQL语句,语句如下:
select distinct GoodsId,Barcode,DepotId,GoodsName from sa_sale where depotid='11' order by selldate
这句话执行的时候就有错误 ,但把排序换成 order by Goodsid 或其它 Barcode,DepotId,GoodsName的时候均没有错误,到此可能大家都想到了,因为 selldate不在查询结果字段中,而且这个语句是distinct语句。所以会出现这个错误
下边给出正确的解决办法:
Select GoodsId,Barcode,DepotId,GoodsName from
(Select distinct GoodsId,Barcode,DepotId,GoodsName,SellDate from sa_sale where depotid='11' )
order by selldate