ITPUB??ì3

标题: 请教PL/SQL
离线 bailuotuo
资深会员


精华贴数 1
个人空间 380
技术积分 4237 (320)
社区积分 1 (41496)
注册日期 2006-7-25
论坛徽章:7
ITPUB新首页上线纪念徽章     
      

发表于 2007-12-27 22:39 
请教PL/SQL

SELECT  A,B,C,D
  FROM  TBL_A
WHERE  A<>'00001'
   AND  B IN(
            SELECT E FROM TBL_B
            GROUP BY  F,G,H
            ORDER BY  F,G,H
           )
这段sql有什么问题吗?  难道in 里面不能同时order by   group by ??


只看该作者    顶部
离线 jianghuilei
老会员



精华贴数 0
个人空间 0
技术积分 1176 (1479)
社区积分 0 (1544845)
注册日期 2007-9-8
论坛徽章:1
ITPUB新首页上线纪念徽章     
      

发表于 2007-12-27 22:42 
子查询Order by子句有意义吗?


SELECT  A,B,C,D FROM TBL_A WHERE A<>'00001' AND B IN(SELECT E FROM TBL_B GROUP BY  F,G,H)


只看该作者    顶部
离线 jianghuilei
老会员



精华贴数 0
个人空间 0
技术积分 1176 (1479)
社区积分 0 (1544845)
注册日期 2007-9-8
论坛徽章:1
ITPUB新首页上线纪念徽章     
      

发表于 2007-12-27 22:42 
并不是IN里面不能用ORDERBY 和GROUP BY ,而是你用了GROUP BY就的话SELECT里面就要用到聚集函数,比如MAX COUNT等
你的语句可以改成
SELECT  A,B,C,D
  FROM  TBL_A
WHERE  A<>'00001'
   AND  B IN(
            SELECT max(E) FROM TBL_B
            GROUP BY  F,G,H
            ORDER BY  F,G,H
           )


只看该作者    顶部
 
    

相关内容


CopyRight 1999-2006 itpub.net All Right Reserved.
北京皓辰广域网络信息技术有限公司. 版权所有
E-mail:Webmaster@itpub.net
京ICP证:010037号 联系我们 法律顾问