郁闷。。这两个SQL语句效率竟然差这么多!老手进来瞧瞧
语句1: 
 SELECT   m.item1,m.item2,m.item3,m.item4,m.item5, 
 count(1)   AS   个数    
 FROM   tmpL   m,E   n       
 WHERE   m.item5> 0   and      m.item6   > 0   and 
 m.item1   IN   (a,b,c,d,e,f,g,h,i,j)    
 AND      m.item2   IN   (a,b,c,d,e,f,g,h,i,j)    
 AND      m.item3   IN   (a,b,c,d,e,f,g,h,i,j)    
 AND      m.item4   IN   (a,b,c,d,e,f,g,h,i,j)    
 AND      m.item5   IN   (a,b,c,d,e,f,g,h,i,j) 
 GROUP   BY   m.item1,m.item2,m.item3,m.item4,m.item5 
 having   count(1)> 100   
 语句2: 
 select   *,个数   from   ( 
 SELECT   m.item1,m.item2,m.item3,m.item4,m.item5, 
 sum(case   when   m.item1   IN   (a,b,c,d,e,f,g,h,i,j)    
 AND      m.item2   IN   (a,b,c,d,e,f,g,h,i,j)    
 AND      m.item3   IN   (a,b,c,d,e,f,g,h,i,j)    
 AND      m.item4   IN   (a,b,c,d,e,f,g,h,i,j)    
 AND      m.item5   IN   (a,b,c,d,e,f,g,h,i,j)   then   1   else   0   end)   AS   个数    
 FROM   tmpL   m,E   n       
 WHERE   m.item5> 0   and      m.item6   is   NULL 
 GROUP   BY   m.item1,m.item2,m.item3,m.item4,m.item5 
 )   m 
 where   个数> 100   
 ----------------------------- 
 以下为模拟数据脚本:   
 drop   table   E 
 GO   
 --建表脚本: 
 create   table   E 
 ( 
             id                              int, 
             a                                 int, 
             b                                 int, 
             c                                 int, 
             d                                 int, 
             e                                 int, 
             f                                 int, 
             g                                 int, 
             h                                 int, 
             i                                 int, 
             j                                 int 
 ) 
 go 
 --   模拟生成10万条包含0-10的数据 
 declare   @i1   int,@i2   int,@i3   int,@i4   int,@i5   int,@i6   int,@i7   int,@i8   int,@i9   int,@i10   int,@x   int,@tt   int 
 select   @x=1 
 while   @x <=100000 
 begin 
             select   @tt=cast(rand()*1000   as   int)%15 
             select   @i1=(CASE   when   @tt <=10   then   @tt   else   0   end) 
             select   @tt=cast(rand()*1000   as   int)%15