首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

表自小弟我连接查询,弄不出来了,高手请出招

2012-01-19 
表自我连接查询,弄不出来了,高手请出招原表:字段ABCD行1a1b1c1d1行2a2b2c2d2行3a3b3c3d3行4a4b4c4d4我希望

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


热点排行