从 GL 表中查询出所有月份的发生额都比 2011 科目相应月份的发生额高的科目。请注意:TestDB 中有很多科目,都有1 -12 月份的发生额。 accid:科目代码;mon:发生额月份;amt:发生额

1、先查询2011科目所对应的月份以及月份所对应的发生额

Select mon,amt from GL where accid=’2011’

2、查询GL表中除了2011科目外,月发生额比2011对应月份发生额高的科目信息

Select a.* from GL a,(Select mon,amt from GL where accid=’2011’

) b where a.mon=b.mon and a.amt>b.amt;

3、最后去掉不是每个月的发生额都比2011科目对应的发生额高的科目

Select accid from (Select a.* from GL a,(Select mon,amt from GL where accid=’2011’

) b where a.mon=b.mon and a.amt>b.amt;

) c group by accid having count(mon)=12;

posted @ 2018-08-28 19:57  偷懒曦  阅读(249)  评论(0编辑  收藏  举报