表自我连接查询,弄不出来了,高手请出招
原表:
字段 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