sqlserver 2008 中没有聚合的数据透视所需的帮助
我需要按如下方式旋转表格: 初始表是这样的
GEO PRD PACK DATATYPE Sales1 Sales2
T1 P1 M1 22 1 2
T1 P1 M1 23 2 8
T1 P1 M1 24 3 5
T2 P2 M2 22 3 2
T2 P2 M2 23 1 4
T2 P2 M2 24 1 7
,我想要的是:
GEO PRD PACK 22_Sales1 22_Sales2 23_Sales1 23_Sales2 24_Sales1 24_Sales2
T1 P1 M1 1 2 2 8 3 5
T2 P2 M2 3 2 1 4 1 7
这里,不同的数据类型是固定的:总是:22、23、24,不多也不少。
请问,有人可以帮我如何编写正确的查询吗?
I need to pivot a table as follows :
the initial table is like this
GEO PRD PACK DATATYPE Sales1 Sales2
T1 P1 M1 22 1 2
T1 P1 M1 23 2 8
T1 P1 M1 24 3 5
T2 P2 M2 22 3 2
T2 P2 M2 23 1 4
T2 P2 M2 24 1 7
and what I want is :
GEO PRD PACK 22_Sales1 22_Sales2 23_Sales1 23_Sales2 24_Sales1 24_Sales2
T1 P1 M1 1 2 2 8 3 5
T2 P2 M2 3 2 1 4 1 7
here, the distinct DATATYPE is fixed : always will be : 22, 23, 24, no less and no more.
Please, can anyone help me how to write the proper query ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
(未经测试,因为我没有可用的 SQL 服务器实例)。
(untested, since I don't have a SQL server instance available).
最新版本的 SQL Server 具有PIVOT 功能。
这是一个示例 如何在多个 SQL Server 版本中进行数据透视。
对于这个非常流行的 SO 问题,有很多很好的答案:SQL Server PIVOT 示例?
这里是该页面中的一个简单 PIVOT 语句的示例:
Recent versions of SQL Server have a PIVOT function.
Here is an example of how to do pivoting in several SQL Server versions.
And there are many good answers to this very popular SO question: SQL Server PIVOT examples?
Here is an example from that page of what a simple PIVOT statement looks like:
要对您的数据使用
PIVOT
,您将使用以下命令。这首先执行UNPIVOT
,然后执行PIVOT
以获取所需格式的数据:请参阅 SQL Fiddle 演示
To use a
PIVOT
with your data you would use the following. This performs anUNPIVOT
first and then aPIVOT
to get the data in the format that you need:See SQL Fiddle with Demo