下面的sql语句如何写?
例子: 
 协议编号                        企业编号            协议类型            有效期至 
 20060102005                  xs002                           计量            2006-05-08 
 20060709006                  xs002                           计量            2007-06-01 
 20060405001                  xs002                           食品            2007-06-02 
 20070805081                  xs002                           食品            2008-06-14 
 20060205099                  dr008                           计量            2006-09-08 
 20060915799                  dr008                           计量            2007-09-08 
 要求得到如下结果: 
 20060709006                  xs002                           计量            2007-06-01 
 20060405001                  xs002                           食品            2007-06-02 
 20060915099                  dr008                           计量            2006-09-08 
 即: 
 相同企业编号的并且相同协议类型的只列出最近的过期协议 
------解决方案--------------------select  
     t.*  
 from  
     表 t  
 where  
     t.有效期至 <getdate() 
     and 
     not exists(select 1 from 表 where 企业编号=t.企业编号 and 协议类型=t.协议类型)
------解决方案--------------------select  
     t.*  
 from  
     表 t  
 where  
     t.有效期至 <getdate() 
     and 
     not exists(select 1 from 表 where 企业编号=t.企业编号 and 协议类型=t.协议类型 and 有效期至> t.有效期至 
 )
------解决方案--------------------  select * 
 from table0 a  
 where  有效期至  < getdate() and  
 not  exists (select 1 from table0 b where b.有效期至  < getdate() and a.企业编号=b.企业编号 and a.协议类型=b.协议类型 and a.有效期至 <b.有效期至 )
------解决方案--------------------看到头顶了都是闪着,钻石,星星的 
 只接分好了