2012-02-23 79 views
0

对实际SQL Server SQL代码格式化查询结果或使用不同程序(如access或excel)的最有效方式是什么,以便X (第一行列标题)和Y轴(第一列字段值)可以改变,但仍然以相同的方式表示相同的查询结果数据。SQL Server 2008查询结果格式化(更改x轴和y轴字段)

他们的方式将数据存储在我的数据库,他们的方式我原来的查询结果在SQL Server 2008中返回如下:

Original Results Format

,下面将我需要的数据的方式看:

How I need the Results to Look

从本质上说,我需要有邮政编码场往下走Y轴(第一列)和Coveragecode领域横跨上面第一行(X轴)与日去e暴露填充其余数据。

我完成这件事的唯一方法就是将数据带入excel并做一堆V-LookUps。我尝试使用一些数据透视表,但没有达到很远。我将继续尝试使用V-LookUps格式化数据,但希望有人能想出一个更好的方法来做到这一点。

+0

刚抬起头 - 它将为他人服务更好,如果你张贴在你的问题,而不是引用外部链接的数据 - 再加上你通常会得到更多的答复/活动的方式。 – 2012-02-24 03:11:03

+0

@J Cooper:你可以给一个SO-meta链接来支持你的adivce吗?这听起来不明显/明确。 – 2012-02-24 03:17:08

+0

@zespri - 我的建议是基于这样一个事实,即如果外部链接死亡,要理解被问到的问题并不那么容易。此外,就更多的活动而言,我的观察是,依赖于外部链接(或关于该事项的链接)的问题受到的关注较少 - 例如,这个相对容易回答的问题在10小时后没有任何评论或回答有人问。 – 2012-02-24 03:44:26

回答

1

你在找什么是一个表操作符PIVOT。文档:http://msdn.microsoft.com/en-us/library/ms177410.aspx

WITH Src AS(
    SELECT Coveragecode, Zipcode, EarnedExposers 
    FROM yourTable 
) 
SELECT Zipcode, [BI], [PD], [PIP], [UMBI], [COMP], [COLL] 
FROM Src 
PIVOT(MAX(EarnedExposers) FOR CoverageCode 
    IN(
      [BI], 
      [PD], 
      [PIP], 
      [UMBI], 
      [COMP], 
      [COLL] 
    ) 
) AS P; 
+0

谢谢!我已经做了很长的路要走(把数据带入excel并做一大堆的vlookups,然后放入访问并删除重复的记录:: sigh :),但我现在会尝试这种方法。这将为我节省很多时间! – 2012-02-24 15:13:35

+0

我最近能够使用上面的代码。工作很好。再次感谢J库珀! – 2013-02-05 19:34:22