表自我连接查询,弄不出来了,高手请出招
原表: 
 字段      A            B            C            D    
 行1         a1         b1         c1         d1 
 行2         a2         b2         c2         d2 
 行3         a3         b3         c3         d3 
 行4         a4         b4         c4         d4   
 我希望连接查询后:   
 字段      A1            B1            C1            D1            A2            B2            C2            D2            A3            B3            C3            D3 
 行1         a1            b1            c1            d1            a2            b2            c2            d2            a3            b3            c3            d3   
 请问如何可以做到? 
 需要这样查询的原因是,我在一个表的不同行里放了今年去年和前年的数据,而用户的报表却是每行一个企业,在同一行里显示这个企业三年的数据,我只好这么办!
------解决方案--------------------我觉得表结构可能是这样的   
 年月      企业      数据 
 ------------------------- 
 2005      企业1    10 
 2005      企业2    20 
 2006      企业1    30 
 2006      企业2    40 
 2007      企业1    50 
 2007      企业2    60     
 用这样的语句 
 Select Main.企业 ,  
 IsNull(Val2005.数据,0) 数据2005, 
 IsNull(Val2006.数据,0) 数据2006, 
 IsNull(Val2007.数据,0) 数据2007 
 from  
 (Select Distinct 企业 From 表) As Main  
 Left Join  
 (Select 企业,数据 From 表 where 日期= '2005 ' ) As Val2005 On Main.企业 = Val2005.企业 
 Left Join  
 (Select 企业,数据 From 表 where 日期= '2006 ' ) As Val2006 On Main.企业 = Val2006.企业 
 Left Join  
 (Select 企业,数据 From 表 where 日期= '2006 ' ) As Val2007 On Main.企业 = Val2007.企业   
 得到结果 
 企业            数据2005             数据2006             数据2007 
 ------------------------------ 
 企业1           10                    30                  50  
 企业2           20                    40                  60