日期:2014-05-16  浏览次数:20505 次

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